В игру «Поставь наверх» входит набор из фигурок, состоящих из четырех квадратов, следующих семи типов:
Для игры выдаются три красные фигурки и три синие фигурки. Цель игры — расположить три красные фигурки так, чтобы они не перекрывали друг друга (хотя они могут касаться друг друга), и затем расположить три синие фигурки поверх красных фигурок, чтобы они покрывали те же квадраты.
Например, даны красные фигурки: одна типа B и две типа C, и три синие фигурки типов B, D и E. Комбинируя фигурки, мы можем создать две идентичные формы разных цветов:
Комбинация B, C и C
Комбинация B,D и E Фигурки можно вращать на угол, кратный $$$90$$$ градусов. Однако, запрещено переворачивать фигурки (иначе из фигурки типа B можно было бы получить фигурку типа D, и наоборот; с E и G — аналогично).
Ваша задача — создать две одинаковых формы из фигурок разных цветов, если это возможно. Рассматриваются только формы, которые можно расположить на квадратной сетке размером $$$6 \times 6$$$. Задача может иметь более одного решения — даже в случае одного решения, может быть несколько разных позиций и ориентаций фигурок. В случае нескольких подходящих решений выбор делается на основании следующего упорядочивания:
При выборе из двух решений сканируются квадраты слева направо в каждом ряду сетки $$$6 \times 6$$$, начиная с верхнего ряда. Находится первый квадрат, который отличается между решениями. Решение, в котором этот квадрат заполнен, находится перед решением, в котором этот квадрат пустой.
В первой строке задано одно целое число $$$t$$$ — количество тестов $$$(1 \le t \le 5)$$$.
Каждая из следующих $$$t$$$ строк содержит три символа, пробел и еще три символа. Каждый символ — это заглавная латинская буква от A до G, обозначающая тип фигурки. Первые три символа — это типы красных фигурок, остальные три символа — типы синих фигурок.
Для каждого теста выведите строку, содержащую номер теста: $$$1$$$ для первого теста, $$$2$$$ для второго теста и так далее. Далее выведите решение в шести строках по шесть символов в каждой строке. Каждый символ обозначает квадрат: символ # (решетка) — заполненный квадрат, символ . (точка) —- пустой квадрат. Решение должно быть первым согласно упорядочиванию, определенному выше. Если решения не существует, выведите «No solution» (соблюдая регистр).
4 BCC BDE BCC EFG AAA CCE ADG DEE
1 #####. .##.#. ..###. ..#... ...... ...... 2 No solution 3 ####.. .####. ..#### ...... ...... ...... 4 ####.. .####. ...### .....# ...... ......