#2245. Bull in a China Shop

Bull in a China Shop

题目描述

农民约翰决定他的家需要更多的装饰。参观当地的瓷器店,他发现一个精致的玻璃牛雕像,他决定购买,知道它将完美地适合在壁炉上方的壁炉架。 奶牛雕像的形状由N×\red{N×}M\red{M}的字符网格描述,如下图所示3\red{(3≤}N\red{N}M\red{M≤}500\red{500)},其中小写字母字符是小雕像的每个部分(表示不同的颜色)和"."字符不是。

不幸的是,就在FJ\red{FJ}可以购买之前,一头公牛穿过商店,不仅打碎了FJ\red{FJ}的小雕像,还打碎了货架上的许多其他玻璃制品!FJ\red{FJ}的小雕像分成3\red{3}块,很快在地上的K\red{K}块中消失了4\red{(4≤}K\red{K≤}100).\red{100). }每一件作品都是由一个网格的字符描述的,就像原始的小雕像一样。 请帮助FJ\red{FJ}确定有多少套3\red{3}件(地板上的K\red{K)}可以粘在一起,以修复他破碎的小雕像。



...............
...............
x..x...........
xxxx...........
xxxxaaaaaaa...
.xx.aaaaaaaaa..
....aaaaaaa.aa.
....ll...ll....
....vv...vv....
...............

地面上的碎片可能垂直或水平翻转,或旋转90\red{90}度的倍数。因此,给定原始网格以及描述片段的K\red{K}网格,您希望找到3\red{3}个片段集,这些片段集可以连接在一起形成原始图片,允许片段以90\red{90}度的倍数进行平移、翻转或旋转。然后叠加时,这3\red{3}个片段应恰好形成原始图片,原始图片中的每个彩色正方形恰好在其中一个片段中表示。

输入格式

第一行包含一个整数K\red{K}。接下来是K+1\red{K+1}件描述。第一个描述将描述原始玻璃牛,以下K\red{K}个描述将描述碎片。

每个描述从一行开始,该行包含两个整数R\red{R}C\red{C(}1\red{1≤}R\red{R}C\red{C≤}100).\red{100). }以下R\red{R}行包含C\red{C}个小写字母字符,用于描述每个单元格的颜色。每个部件将水 平垂直连接,并至少有一个非空单元。

输出格式

输出三元组i\red{i}j\red{j}k\red{k(}i<j<k\red{i<j<k)}的数量,以便可以将片i\red{i}j\red{j}k\red{k}排列成原始玻璃牛。

样例

输入样例

5
5 5
aaaaa
..a..
bbabb
..a..
aaaaa
3 5
..abb
..a..
aaaaa
5 2
a.
a.
aa
a.
a.
1 2
bb
1 5
bbabb
2 5
aaaaa
..a..

输出样例

3

提示

这三种溶液使用块0,1,2\red{(0,1,2)}0,2,4\red{(0,2,4)}1,3,4\red{(1,3,4)}