Fili 和 Floi 在玩一个拼图游戏。Fili 拿出一张长方形纸片,上面画有 $W \times H$ 的方格网,他沿着网格线将其剪成若干碎片,并小心地将碎片打乱,使得碎片不会发生旋转。Floi 需要在不旋转碎片的情况下将它们重新拼回长方形。
Fili 在将原始纸片剪成碎片时遵循一些约束,以确保拼图是“良构”的。首先,Fili 选择三个整数 $w, h$ 和 $n$,使得原始长方形纸片的宽度为 $W = wn$,高度为 $H = hn$。这里 $w$ 和 $h$ 对 Floi 是已知的,但 $n, W$ 和 $H$ 未知。这样,原始长方形纸片可以被剪成 $k = n^2$ 个宽度为 $w$、高度为 $h$ 的平凡矩形。然而,对于 $k > 1$ 的情况,这种平凡拼图不被视为本游戏的良构拼图。相反,原始长方形被剪成的碎片是基于这些平凡的 $w \times h$ 矩形,并在相邻碎片之间具有锯齿状边缘。形式上,原始 $W \times H$ 纸片被剪成的碎片需满足以下良构拼图的约束:
- 共有 $k = n^2$ 个碎片。
- 每个碎片都是一个没有孔的简单 4-连通区域。
- 原始 $W \times H$ 长方形纸片的每个格子恰好属于一个碎片。
- 每个碎片都包含原始纸片对应平凡拼图中 $w \times h$ 矩形的四个角。
- 每个碎片的格子只能来自其对应的平凡拼图 $w \times h$ 矩形、与该矩形相邻的格子,以及相邻平凡矩形内部的格子。
- 两个相邻碎片之间的切割线不能是直的。只有位于原始 $W \times H$ 纸片边缘的碎片才具有直边。
这些约束的推论是,良构拼图的每个碎片都可以放入一个 $(3w - 2) \times (3h - 2)$ 的格子区域内。此外,每个碎片的描述将以 $(3w - 2) \times (3h - 2)$ 的网格形式给出,使得平凡拼图中对应的 $w \times h$ 矩形恰好位于中心。
左侧图片展示了一个示例长方形纸片,其网格大小为 $W \times H = 12 \times 9$,并用粗虚线剪成了 $k = 9$ 个宽度为 $w = 4$、高度为 $h = 3$ 的平凡矩形。该平凡拼图中中心 $3 \times 4$ 碎片的角用黑色标出。它们必须是任何良构拼图中中心碎片的一部分。良构拼图中中心碎片的其他潜在格子用灰色标出。粗黑线显示了将描述此中心碎片的 $(3w - 2) \times (3h - 2) = 10 \times 7$ 的长方形区域。右侧图片展示了拼图右上角碎片的情况。
你的任务是帮助 Floi 完成拼图。
输入格式
输入文件的第一行包含三个整数 $k, w$ 和 $h$。其中 $k$ 是拼图碎片的数量,$w$ 是平凡拼图碎片的宽度,$h$ 是高度($k = n^2$,其中 $1 \le n \le 4$,$3 \le w, h \le 5$)。
输入文件的其余部分包含 $k$ 个良构拼图碎片的描述。每个碎片由 $3h - 2$ 行描述,每行包含 $3w - 2$ 个字符。碎片按连续的大写英文字母标记(第 1 个碎片为 'A',第 2 个碎片为 'B',依此类推)。每个碎片的描述在其 $3h - 2$ 行中仅使用两个字符。对应于该碎片的英文字母表示该格子属于此碎片,而 '.'(点)字符表示该格子不属于此碎片。
空行分隔不同的碎片。
输出格式
输出文件的第一行应包含 $W$ 和 $H$ —— 被剪成拼图碎片的原始纸片的大小。接下来的 $H$ 行应各包含 $W$ 个英文字母,描述拼图的解。字母表示属于相应拼图碎片的格子。如果存在多种解法,输出任意一种即可。
样例
输入格式 1
4 4 3 .......... .......... ...AAAA... ...AAAAAA. ...A.AA... .......... .......... .......... .......... ...BBBB... .....BB... ...BBBB... ....BB.... .....B.... .......... .......... ...C..C... ..CCC.C... ...CCCC... .......... .......... .......... ....D..... ...DDDD... ...DDD.... ...DDDD... .......... ..........
输出格式 1
8 6 AAAABBBB AAAAAABB ADAABBBB DDDDCBBC DDDCCCBC DDDDCCCC