Задачі
Додати або помножити
Додати або помножити
Промислова компанія, яка виробляє процесори для комп'ютерів, пропонує дуже швидкі пристрої з опрацювання інформації з врахуванням потреб клієнтів. Множина команд процесорів серії \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}.
Вхідні дані #1
1 2 2 3 10 20 0 0 0 0 0 0
Вихідні дані #1
Case 1: 1A 2M