I. 密室逃脱

Naive

时间限制:1000 ms

内存限制:256 MiB

题面

小木同学在设计一个密室逃脱游戏。

游戏的地图为一个nnn*n的正方形区域,共包含n2n^2个格子区域,以及编号从1n1 \sim nnn扇门。每个格子区域内可能包含最多一把钥匙,也可能不包含任何钥匙,当玩家找到开启所有门的钥匙时,即可逃出密室。

注意:每把钥匙只能开启一扇门,但可能存在多把钥匙可以开启同一扇门。

具体规则可以描述为:对于第ii行第jj列的格子区域包含一个数字ai,ja_{i,j},如果:

  • ai,ja_{i,j}11,则该格子区域存在一把可以开启第jj扇门的钥匙。
  • ai,ja_{i,j}为0,则该格子区域不包含任何钥匙。

如下图所示:a1,1a_{1,1}a4,1a_{4,1}格子藏有开启第11扇门的钥匙;a2,2a_{2,2}a3,2a_{3,2}格子藏有开启第22扇门的钥匙;a1,3a_{1,3}格子藏有开启第33扇门的钥匙;a3,4a_{3,4}a4,4a_{4,4}格子藏有开启第44扇门的钥匙;a3,5a_{3,5}格子藏有开启第55扇门的钥匙。

1 0 1 0 0
0 1 0 0 0
0 1 0 1 1
1 0 0 1 0
0 0 0 0 0

游戏设计完成后,小木同学感觉挑战难度偏低。于是他决定在地图上选择一块小为k×kk\times k且四条边平行于地图边界的正方形区域,设置为障碍区。参与游戏的玩家将无法进入障碍区,也无法获得藏于该区域内的钥匙。

对于上述示例,小木看可以设置如下#所覆盖的3×33\times 3的区域为障碍区。

1 0 1 0 0
0 1 0 0 0
# # # 1 1
# # # 1 0
# # # 0 0

小木想知道,在确保游戏仍可玩的情况下(即障碍区之外仍然可以找到开启所有门的钥匙),他可以设置的障碍区最大是多少,请你帮他编程计算最大的kk值。

输入格式

第一行一个整数nnn100n\le 100)。

接下来nn行,每行包含nn个数字,数字均为00或者11

输出格式

一个整数kk

样例

输入

5
1 0 1 0 0
0 1 0 0 0
0 1 0 1 1
1 0 0 1 0
0 0 0 0 0

输出

3