题面
小木同学在设计一个密室逃脱游戏。
游戏的地图为一个的正方形区域,共包含个格子区域,以及编号从的扇门。每个格子区域内可能包含最多一把钥匙,也可能不包含任何钥匙,当玩家找到开启所有门的钥匙时,即可逃出密室。
注意:每把钥匙只能开启一扇门,但可能存在多把钥匙可以开启同一扇门。
具体规则可以描述为:对于第行第列的格子区域包含一个数字,如果:
- 为,则该格子区域存在一把可以开启第扇门的钥匙。
- 为0,则该格子区域不包含任何钥匙。
如下图所示:、格子藏有开启第扇门的钥匙;、格子藏有开启第扇门的钥匙;格子藏有开启第扇门的钥匙;、格子藏有开启第扇门的钥匙;格子藏有开启第扇门的钥匙。
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
游戏设计完成后,小木同学感觉挑战难度偏低。于是他决定在地图上选择一块小为且四条边平行于地图边界的正方形区域,设置为障碍区。参与游戏的玩家将无法进入障碍区,也无法获得藏于该区域内的钥匙。
对于上述示例,小木看可以设置如下#所覆盖的的区域为障碍区。
1 0 1 0 0
0 1 0 0 0
# # # 1 1
# # # 1 0
# # # 0 0
小木想知道,在确保游戏仍可玩的情况下(即障碍区之外仍然可以找到开启所有门的钥匙),他可以设置的障碍区最大是多少,请你帮他编程计算最大的值。
输入格式
第一行一个整数()。
接下来行,每行包含个数字,数字均为或者。
输出格式
一个整数。
样例
输入
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