开罗五边形镶嵌(Cairo pentagonal tiling)是一种使用半正五边形对平面进行的分解,因开罗有几条街道铺设了这种设计的变体而得名。
考虑一个有界的镶嵌,其中每个五边形要么是透明的(白色),要么是填充的(灰色)。走廊(corridor)是连接镶嵌四个边界的透明五边形的最大集合。如果两个五边形共享一条边(而不仅仅是顶点),则认为它们是相邻的。很容易验证,每个镶嵌中最多只能存在一条走廊。如果一个走廊没有多余的五边形,则称其为极小(minimal)的,也就是说,如果填充走廊中的任何一个五边形,剩余五边形的集合将不再构成一条走廊。
上图描绘了四个镶嵌示例。在前三种情况中,存在一条以黄色高亮显示的走廊。此外,图 (a) 和 (b) 中的走廊是极小的,但图 (c) 中的走廊不是:例如,标记为“X”的瓷砖(以及其他瓷砖)可以被填充,而走廊仍然存在。在最右侧的镶嵌中不存在走廊。图 (a) 和 (c) 所示的镶嵌对应于样例输入 1。
任务
编写一个程序,读取开罗镶嵌的文本描述,并为每个镶嵌确定是否存在走廊,以及该走廊是否是极小的。如果是极小的,程序应计算该走廊的大小,即走廊中透明五边形瓷砖的数量。
输入格式
输入的第一行是一个正十进制整数 $T$,表示要处理的镶嵌数量。每个镶嵌描述的第一行包含两个正十进制整数 $N_k$ 和 $M_k$,中间用空格隔开。接下来的 $N_k$ 行包含 $2 \times M_k$ 个二进制数字,表示瓷砖对 $a_{ij}, b_{ij}$($0$ 表示透明,$1$ 表示填充),它们遵循图中所示的交替水平/垂直邻接的“棋盘”模式。
数据范围
$1 \le T \le 10$ $1 \le \sum_{k=1}^T N_k \le 250$ $1 \le \sum_{k=1}^T M_k \le 250$
输出格式
输出包含 $T$ 行;第 $k$ 行应输出第 $k$ 个镶嵌的走廊大小(如果存在极小走廊),否则输出 NO MINIMAL CORRIDOR。
样例
输入 1
2 6 6 010101001001 001000101100 110101001101 010010000100 001110110010 0010001101010 6 6 010010110010 001100100111 000110100101 011001100101 100100011100 011010001101
输出 1
17 NO MINIMAL CORRIDOR
输入 2
1 3 4 11110111 01000000 11110111
输出 2
9