#include<bits/stdc++.h>
using namespace std;
int mapp[101][101];
int n,m,ans;
void dfs(int x,int y,int step){
if(x+step>n||y+step>m){
return ;
}
for(int i=x;i<=x+step;i++){
if(mapp[i][y]==0){
ans=max(ans,step);
return ;
}
}
for(int j=y;j<=y+step;j++){
if(mapp[x][j]==0){
ans=max(ans,step);
return ;
}
}
dfs(x,y,step+1);
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>mapp[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(mapp[i][j]==1){
dfs(i,j,0);
}
}
}
cout<<ans;
return 0;
}