#include<iostream>
using namespace std;
int m,n;
const int maxn=133;
int s[maxn][maxn];
bool a[maxn][maxn];
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];
int maxx=1;
for(int k=1;k<=min(n,m);k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
if(i+k-1<=n&&j+k-1<=n&&i-1>=1&&j-1>=1)
if(s[i+k-1][j+k-1]-s[i-1][j+k-1]-s[i+k-1][j-1]+s[i-1][j-1]==(k*k))
maxx=max(maxx,k);
}
cout<<maxx;
return 0;
}