eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Додати або помножити

Додати або помножити

Промислова компанія, яка виробляє процесори для комп'ютерів, пропонує дуже швидкі пристрої з опрацювання інформації з врахуванням потреб клієнтів. Множина команд процесорів серії \textbf{a-C-m} (таких як \textbf{1-C-2} та \textbf{5-C-3}) складається усього лише з двох різних операторів: \textbf{A add a} \textbf{M multiply by m} На вхід процесор отримує ціле число, потім виконує послідовність з \textbf{A} та \textbf{M} операторів (програму), яка змінює вхідні дані, і виводить результат. Наприклад, процесор \textbf{1-C-2}, який виконує програму \textbf{AAAM} на вхідному числі \textbf{2}, виведе \textbf{10} (послідовність обчислень: \textbf{2} → \textbf{3} → \textbf{4} → \textbf{5} → \textbf{10}), а процесор \textbf{5-C-3} виведе \textbf{51} при тій же програмі і з тими ж вхідними даними (\textbf{2} → \textbf{7} → \textbf{12} → \textbf{17} → \textbf{51}). Ви - \textbf{a-C-m} програміст, який займається секретним проектом. Це означає, що Вам не відомі конкретні обчислення, які повинна виконувати Ваша програма. Але Вам задано деякі значення \textbf{p}, \textbf{q}, \textbf{r} і \textbf{s}, а також наступні умови: \begin{enumerate} \item Вхідним значенням є число, яке знаходиться між \textbf{p} і \textbf{q}. \item Вихідне значення повинно бути цілим, яке лежить між \textbf{r} і \textbf{s}. \end{enumerate} За заданими \textbf{a-C-m} процесором та числами \textbf{p}, \textbf{q}, \textbf{r} і \textbf{s} необхідно створити найкоротшу \textbf{a-C-m} програму, яка для кожного \textbf{x}, для якого \textbf{p} ≤ \textbf{x} ≤ \textbf{q}, виведе значення \textbf{y}, для якого \textbf{r} ≤ \textbf{y} ≤ \textbf{s}. Якщо існує декілька найкоротших програм, то вивести лексикографічно найменшу. Програму слід трактувати як рядок, який містить літери \textbf{A} та \textbf{M}. \InputFile Вхідні дані складаються з декількох тестів. Кожен тест задається одним рядком, який містить шість цілих чисел \textbf{a}, \textbf{m}, \textbf{p}, \textbf{q}, \textbf{r} і \textbf{s} (\textbf{1} ≤ \textbf{a}, \textbf{m}, \textbf{p}, \textbf{q}, \textbf{r}, \textbf{s} ≤ \textbf{10^9}, \textbf{p} ≤ \textbf{q} і \textbf{r} ≤ \textbf{s}). Останній тест завершується рядком, який містить шість нулів. \OutputFile Для кожного тесту вивести його номер та найкращу програму, як описано в умові. Вивести слово "\textbf{empty}", якщо найкраща програма не використовує операторів. Вивести слово "\textbf{impossible}", якщо не існує програми, що задовольняє специфікаціям. Програму слід виводити у вигляді послідовності рядків, які чергуються, виду "\textbf{nA}" і "\textbf{nM}" (\textbf{n} > \textbf{0}), відокремлених одним пропуском. Рядки першого типу означають послідовність \textbf{А} операторів довжини \textbf{n}, а рядки другого типу послідовність \textbf{M} операторів довжини \textbf{n}.
Ліміт часу 3 секунди
Ліміт використання пам'яті 256 MiB
Вхідні дані #1
1 2 2 3 10 20
0 0 0 0 0 0
Вихідні дані #1
Case 1: 1A 2M
Джерело ICPC 2011 World Finals