宾果游戏由一名主持人及多名玩家进行。游戏开始时,每位玩家会获得一张印有 $M \times M$ 个数字的矩阵卡片(见图 10)。
图 10:卡片
图 11:$4 \times 4$ 卡片的宾果图案
游戏进行时,主持人会逐个宣布一系列数字。如果玩家卡片上有被宣布的数字,该玩家就在相应位置打孔。
当卡片上至少出现一个“宾果”时,该玩家获胜并离开游戏。“宾果”是指卡片上某一行、某一列或某一条对角线上的所有 $M$ 个数字都被打孔(见图 11)。
主持人会持续宣布数字,直到所有玩家都达成宾果。
在普通的宾果游戏中,主持人通过随机过程选择数字,无法对其进行控制。但在本题中,主持人在游戏开始时已知所有卡片的内容,并可以通过自主选择要宣布的数字序列来控制游戏。
具体而言,他控制游戏以满足以下条件:
对于 $i < j$,$\text{Card}_i$ 达成宾果的时间不晚于 $\text{Card}_j$(即 $\text{Card}_i$ 必须先于或同时于 $\text{Card}_j$ 达成宾果)。($*$)
图 12 展示了游戏过程的一个示例。主持人不能在“16”之前宣布“5”,因为这样会导致 $\text{Card}_4$ 比 $\text{Card}_2$ 和 $\text{Card}_3$ 更早达成宾果,从而违反条件 ($*$)。
你的任务是编写一个程序,求出满足给定卡片条件下,数字序列的最小长度。
输入格式
输入包含多个数据集。每个数据集的格式如下:
$P \quad M$ $N_{11}^1 \quad N_{12}^1 \quad \dots \quad N_{1M}^1 \quad N_{21}^1 \quad N_{22}^1 \quad \dots \quad N_{2M}^1 \quad \dots \quad N_{M1}^1 \quad N_{M2}^1 \quad \dots \quad N_{MM}^1$ $N_{11}^2 \quad N_{12}^2 \quad \dots \quad N_{1M}^2 \quad N_{21}^2 \quad N_{22}^2 \quad \dots \quad N_{2M}^2 \quad \dots \quad N_{M1}^2 \quad N_{M2}^2 \quad \dots \quad N_{MM}^2$ $\vdots$ $N_{11}^P \quad N_{12}^P \quad \dots \quad N_{1M}^P \quad N_{21}^P \quad N_{22}^P \quad \dots \quad N_{2M}^P \quad \dots \quad N_{M1}^P \quad N_{M2}^P \quad \dots \quad N_{MM}^P$
所有数据项均为整数。$P$ 是卡片的数量,即玩家人数。$M$ 是每张卡片上矩阵的行数和列数。$N_{ij}^k$ 表示第 $k$ 张卡片上位置 $(i, j)$ 的数字。若 $(i, j) \neq (p, q)$,则 $N_{ij}^k \neq N_{pq}^k$。参数 $P, M$ 和 $N$ 满足条件 $2 \le P \le 4$,$3 \le M \le 4$,且 $0 \le N_{ij}^k \le 99$。
输入以一行包含两个空格分隔的零作为结束,该行不属于数据集。
输出格式
对于每个数据集,输出满足条件 ($*$) 的数字序列的最小长度。如果不存在这样的序列,则输出 0。每个数据集的输出应打印在单独的一行上。
样例
输入 1
4 3 10 25 11 20 6 2 1 15 23 5 21 3 12 23 17 7 26 2 8 18 4 22 13 27 16 5 11 19 9 24 2 11 5 14 28 16 4 3 12 13 20 24 28 32 15 16 17 12 13 21 25 29 33 16 17 18 12 13 22 26 30 34 17 18 15 12 13 23 27 31 35 18 15 16 4 3 11 12 13 14 15 16 17 18 19 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 49 4 4 2 6 9 21 15 23 17 31 33 12 25 4 8 24 13 36 22 18 27 26 35 28 3 7 11 20 38 16 5 32 14 29 26 7 16 29 27 3 38 14 18 28 20 32 22 35 11 5 36 13 24 8 4 25 12 33 31 17 23 15 21 9 6 2 0 0
输出 1
5 4 12 0