#include<iostream>
using namespace std;
int n ,m;
int Len;
int f[105][105];
int a[105][105];
int calc(int x1 , int y1 , int x2 , int y2) {
return f[x2][y2] - f[x1 - 1][y2] - f[x2][y1 - 1] + f[x1 - 1][y1 - 1];
}
int main()
{
cin >> n >> m;
for ( int i = 1 ; i <= n ; i ++) {
for (int j = 1 ; j <= m ; j ++) {
cin >> a[i][j];
f[i][j] = f[i-1][j] + f[j-1][i] - f[i-1][j-1] + a[i][j];
}
}
for (Len = min(n, m) ; Len >= 1 ; Len --) {
for(int a = Len ; a <= n ; ++ a) {
for(int b = Len ; b <= m ; ++ b) {
if(calc(a - Len + 1 , b - Len + 1 , a , b) == Len * Len) {
cout << Len << endl;
return 0;
}
}
}
}
return 0;
}