Топ Це
Гра "Top This" грається з фігурами, що складаються з чотирьох одиничних квадратів, розташованих так, щоб кожен квадрат мав спільну сторону з принаймні одним іншим квадратом. Це призводить до наступних семи фігур:
У грі вам надаються три червоні фігури та три сині фігури. Ваше завдання — розмістити три червоні фігури на сітці так, щоб вони не перекривали одна одну (хоча вони можуть мати спільні сторони), а потім розмістити три сині фігури поверх червоних так, щоб вони покривали точно ті ж квадрати.
Наприклад, припустимо, що наші червоні фігури включають форму B та дві копії форми C, а наші сині фігури — форму B, форму D та форму E. Ми могли б створити однакові форми, комбінуючи їх таким чином:
Зверніть увагу, що ви можете обертати кожну фігуру незалежно в будь-яку орієнтацію, яку ви оберете. Однак, ви не можете перевертати фігуру. (Це змінило б фігуру форми B на фігуру форми D і навпаки; аналогічно, це б змінило E на G.)
Ваше завдання — розв'язати головоломку "Top This" і повідомити про форму, яку можна створити з обох груп фігур, якщо це можливо. Ми додатково обмежуємо проблему, розглядаючи лише рішення, які можна розмістити на сітці розміром шість на шість. Можливо, що буде більше ніж одне рішення головоломки — і навіть якщо є лише одне рішення, буде багато різних позицій і орієнтацій, в яких може бути форма. Ви повинні надати форму, яка йде першою на основі наступного порядку:
Даючи два рішення, розгляньте квадрати в порядку рядків (тобто зліва направо в кожному рядку, починаючи з верхнього рядка), поки не знайдете перший квадрат, який відрізняється між двома. Рішення, в якому квадрат заповнений, йде перед рішенням, в якому квадрат порожній.
Вхідні дані
Перша рядок введення містить число T, де 1 ≤ T ≤ 5. Наступні T рядків представляють T наборів даних, по одному на рядок. Кожен набір даних складається з рядка з трьох символів, одного пробілу та іншого рядка з трьох символів. Кожен символ буде великою літерою від A до G, що представляє одну з семи фігур, позначених на Рисунку 1 вище. Перші три символи будуть червоними фігурами; останні три символи будуть синіми фігурами.
Вихідні дані
Для кожного набору даних ви повинні спочатку вивести порядковий номер набору даних на окремому рядку: 1 для першого набору, 2 для другого і так далі. Після порядкового номера має бути рішення, надруковане у вигляді шести рядків з шістьма символами в кожному рядку. Кожен символ представляє одиничний квадрат — знак решітки (#) вказує на заповнений квадрат, тоді як крапка (.) вказує на порожній квадрат. Заповнені квадрати повинні описувати першу форму, яку можна сформувати з обох червоних і синіх фігур, згідно з визначеним вище порядком. Якщо немає можливого рішення, просто надрукуйте "No solution" на одному рядку.