题目描述
你正在使用乐高积木来训练人工视觉系统。
本题中只有一种乐高积木—— $2 \times 2$ 的砖块。它有白(W)、灰(G)、黑(B)三种颜色。所有的积木都有无限个。
你在一个 $6 \times 6$ 的底板上砌砖块。砖块边缘必须平行于底板,且砖块不能延伸到地板的外面。每块积木必须有至少一块积木支持,也就是不能浮空(但没说不可以部分悬挂)。
左:将积木放在另一个积木的顶部上的一种可行的方式。中:一种非法的方式(上层积木挂在空中)。右:另一种非法方式(上方的积木延伸到底板外)。
给出从两个角度拍摄的积木建筑的图片,试求:要建立它有多少种不同的方式。
输入格式
第一行包含 $H$($1 \le H \le 6$),即建筑的高度。然后 $H$ 行每行 $6$ 个字符,给出从一侧(下图中标记为 A)所见的建筑图。
第 $i$ 行的第 $j$ 个字符表示你从上方看第 $i$ 行左边的第 $j$ 列所看到的颜色。每个字符都可以是 W
,G
,B
或 .
中的一种,表示一种颜色(W
,G
或 B
)或孔(.
)。请注意,你无法估计深度,因此只要没有其他积木挡住视线,在某个位置看到的颜色可能属于某个靠前的积木,也可能属于某个靠后的积木。
接下来 $H$ 行是观察者逆时针绕建筑旋转 $90$ 度(在下图中标记为 B)看到的图片。
输出格式
输出一行一个整数,表示不同的乐高建筑的个数。通过旋转或翻转得到的建筑算作不同。保证答案在 64 位有符号整数范围内。
样例
input
2
WWGG..
.BB.WW
.WGG..
WWGG..
output
6