#include<bits/stdc++.h>
using namespace std;
int main(){
int res,n,m,num[105][105],dp[105][105];
cin>>n>>m;
for(int i=1;i<=n;++i){
for(int j=1;i<=m;++j){
cin>>num[i][j];
}
}
for(int i=1;i<=n;++i){
for(int j=1;i<=m;++j){
if(num[i][j]==1){
dp[i][j]=min(min(dp[i-1][j-1],dp[i][j-1]),dp[i-1][j])+1;
res=max(res,dp[i][j]);
}
}
}
cout<<res<<endl;
return 0;
}