G. Язык-паззл
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

В этой задаче вам нужно написать несложный генератор кода для двухмерного языка программирования, производного от Brainfuck.

Код на этом языке представляет собой прямоугольник, состоящий из символов '.' и 'X'. Код преобразуется в программу на Brainfuck следующим образом: символы читаются в книжном порядке (сверху вниз, слева направо), и каждому символу 'X' ставится в соответствие команда Brainfuck. Команда определяется левым, верхним и правым соседями символа 'X' в соответствии со следующей таблицей:

Вам дана строка. Выведите программу на этом языке, которая при выполнении напечатает эту строку.

Вы можете скачать исходный код используемого интерпретатора по ссылке https://assets.codeforces.com/rounds/952/puzzling-interpreter.cpp (используйте C++11 чтобы скомпилировать код). Обратите внимание на несколько аспектов реализации:

  • Первый шаг интерпретации кода - преобразование в программу на Brainfuck, которая затем выполняется.
  • Код должен быть прямоугольным, т.е. все строки должны быть одинаковой длины. В коде может быть не более 10,000 строк и 10,000 столбцов, и не более 500,000 символов 'X'.
  • Код имеет топологию тора, т.е. для символов в первой строке соседи сверху - символы на последней строке.
  • Память интерпретатора Brainfuck состоит из 30000 ячеек памяти, хранящих целые числа от 0 до 255 с арифметикой по модулю 256.
  • Ввод с консоли (команда ,) разрешен в программе на Brainfuck, но игнорируется при выполнении.
Входные данные

Входные данные состоят из одной строки символов с аски-кодами от 33 ('!') до 122 ('z'), включительно. Длина строки - от 1 до 10 символов, включительно.

Выходные данные

Выведите программу на описанном языке, которая при выполнении выведет на печать заданное сообщение.

Пример
Входные данные
$$$
Выходные данные
.......X.......
......XXX......
.....XXXXX.....
....XXXXXXX....
...XXXXXXXXX...
..XXXXXXXXXXX..
.XXXXXXXXXXXXX.
...............
X.............X
X..............
X..............
X..............
Примечание

Пример соответствует следующей программе на Brainfuck:

       -
>+<
>+++<
>+++++<
>+++++++<
>+++++++++<
>+++++++++++<

< >
.
.
.

Треугольный блок вычитает единицу из первой ячейки памяти и устанавливает значение второй ячейки равным 36 - аски-коду символа '$'. Следующая после треугольного блока строка передвигает указатель памяти на вторую ячейку, а три последние строки выводят символ '$' три раза.