Олимпиадный тренинг

Задача . C. Спрятанное слово


Определим игровое поле как таблицу из 2 рядов и 13 столбцов. В каждой клетке таблицы записана заглавная буква английского алфавита. Некоторые клетки могут содержать одинаковые буквы. Рассмотрим пример таблицы:


ABCDEFGHIJKLM
NOPQRSTUVWXYZ

Назовём две клетки соседними, если у них есть общая сторона или общий угол. В приведённом примере клетка «A» является соседней с клетками с буквами «B», «N» и «O». Клетка не является соседней сама себе.

Последовательность клеток называется путём, если любые две соседние клетки последовательности являются соседними клетками поля. В приведённом примере «ABC» является путём, также как и «KXWIHIJK». Последовательность клеток «MAB» путём не является, так как «M» не соседняя с «A». Одна клетка может входить в путь несколько раз (но не может занимать две соседние позиции в пути, так как клетка не является соседней сама себе).

Вам дана строка s, состоящая из 27 заглавных букв английского алфавита. Каждая заглавная буква английского алфавита встречается в s хотя бы один раз. Требуется построить какую-нибудь таблицу, содержащую какой-нибудь путь, такой что если выписать буквы в клетках вдоль этого пути, получится строка s. Если решения не существует выведите «Impossible».

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

В единственной строке входных данных записана строка s, состоящая из 27 заглавных букв английского алфавита. Каждая буква встречается в строке s хотя бы один раз.

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

Выведите две строки, каждая из которых содержит 13 заглавных букв английского алфавита, определяющие строки таблицы. Если правильных решений несколько, выведите любое из них. Если решений не существует, выведите «Impossible».


Примеры
Входные данныеВыходные данные
1 ABCDEFGHIJKLMNOPQRSGTUVWXYZ
YXWVUTGHIJKLM
ZABCDEFSRQPON
2 BUVTYZFQSNRIWOXXGJLKACPEMDH
Impossible

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя