#2253. Bull in a China Shop

Bull in a China Shop

题目描述

农民约翰决定他的家需要更多的装饰。参观当地的瓷器店,他发现一个精致的玻璃牛雕像,他决定购买,知道它将完美地适合在壁炉上方的壁炉架。

奶牛雕像的形状由N×\red{N×}N\red{N}的字符网格描述,如下图所示3\red{(3≤}N\red{N≤}8\red{8)} ,其中"#"字符是小雕像的一部分,而"."字符不是。



...............
...............
...............
#..#...........
####...........
############...
.##.#########..
....#######.##.
....##...##....
....##...##....
...............
...............
...............
...............
...............

不幸的是,就在FJ\red{FJ}可以购买之前,一头公牛穿过商店,不仅打碎了FJ\red{FJ}的小雕像,还打碎了货架上的许多其他玻璃制品!FJ\red{FJ}的小雕像分成两块,很快在地上的K\red{K}块中消失了3\red{(3 ≤}K\red{K≤}10).\red{10). }每一件作品都是由N×\red{N×}N\red{N}个字符组成的网格来描述的,就像原始的小雕像一样。

请帮助FJ\red{FJ}确定K\red{K}件中的哪一件是他需要重新粘在一起以修复损坏的小雕像的两件。幸运的是,当他的两件小雕像落在地上时,它们没有旋转或翻转,因此要重新组装它们,FJ\red{FJ}只需要可能水平或垂直移动这些碎片,然后超级施加它们。如果他有正确的两件作品,他应该能够准确地重建原始雕像,原始雕像中的每个"#"都在两件作品中的一件中表示(也就是说,两件作品在移位和叠加时,不应 共享任何共同的"#"字符,它们应一起准确地形成原始形状)。

FJ\red{FJ}可以垂直或水平移动任意数量的字符,但不能移动到其任何#字符超出原始N×\red{N×}N\red{N}网格的程度。每件作品的形状不一定由单个#字符"连接"区域组成;尽管如此,如果一个片段由多个不相交 的"#"字符束组成,如果要移动整个片段,则必须将它们全部移动相同的量。

输入格式

第一行输入包含N\red{N}行,后跟K\red{K}。接下来的N\red{N}行提供了描述FJ\red{FJ}原始雕像的字符网格。接下来的KN\red{KN}行给出了K\red{K}个字符网格,指定了FJ\red{FJ}在地面上找到的K\red{K}个片段。

输出格式

请打印一行,其中包含两个空格分隔的整数,每个整数的范围为1\red{1…}K\red{K,}指定FJ\red{FJ}的两件雕像的索引。解决方案总是存在的,并且是唯一的。打印的两个数字必须按顺序排序。

样例

输入样例

4 3
####
#..#
#.##
....
.#..
.#..
##..
....
####
##..
#..#
####
....
.###
.#..
.#..

输出样例

1 3