#include<iostream>
using namespace std;
int main(){
int n,m;
cin>>n>>m;
int a[n+2][m+2]={0};
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
if(i==1&&j==1) a[i][j]=a[i][j];
if(i==1&&j>1) a[i][j]=a[i][j]+a[i][j-1];
if(i>1&&j==1) a[i][j]=a[i][j]+a[i-1][j];
if(i>1&&j>1) a[i][j]=a[i][j]+a[i-1][j]+a[i][j-1]-a[i-1][j-1];
}
}
int c=1;
for(int y1=1;y1<=n;y1++){
for(int x1=1;x1<=m;x1++){
if(a[y1][x1]==1) for(int len=1;a[y1+len][x1+len]-a[y1+len][x1-1]-a[y1-1][x1+len]+a[y1-1][x1-1]==(len+1)*(len+1);len++) c=max(c,len+1);
}
}
cout<<c;
}