Поставь наверх
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

В игру «Поставь наверх» входит набор из фигурок, состоящих из четырех квадратов, следующих семи типов:

Для игры выдаются три красные фигурки и три синие фигурки. Цель игры — расположить три красные фигурки так, чтобы они не перекрывали друг друга (хотя они могут касаться друг друга), и затем расположить три синие фигурки поверх красных фигурок, чтобы они покрывали те же квадраты.

Например, даны красные фигурки: одна типа 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
####..
.####.
...###
.....#
......
......