最大矩阵匹配
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

定义一个  的01矩阵,若该矩阵的副对角线(从右上角到左下角的对角线)全由1组成,左侧的边全由1组成,下侧的边全由1组成,且该矩阵的其余元素全为0,则称该矩阵为一个  的箭头矩阵。现在给你一个  的01矩阵,请你在这个矩阵中找到一个最大的箭头矩阵,并输出其边长的大小。

输入描述:

输入共  行。
第一行两个正整数 n,m (1≤n,m≤5000) 代表所给矩阵是一个  行  列的矩阵。
接下来  行,每行  个整数,中间没有空格,仅由0和1组成。

输出描述:

输出一行一个数,表示该  的矩阵中的最大箭头矩阵的边长的大小。
示例1

输入

复制
3 4
1101
0110
1111

输出

复制
3
示例2

输入

复制
5 5
11111
11111
11111
11111
11111

输出

复制
2

备注:

关于箭头矩阵补充:
例如:
1001
1010
1100
1111
该矩阵满足题目要求,是一个  的箭头矩阵,其边长为4;
例如:
1000
1100
1010
1111
该矩阵不满足题目要求,不是一个箭头矩阵。
例如:
1001
0101
0011
1111
该矩阵不满足题目要求,不是一个箭头矩阵。
例如:
1
该矩阵是一个  的箭头矩阵。