#include<bits/stdc++.h>
using namespace std;
int s[1000][1000],a[1000][1000];
int pow1(int i)
{
return pow(i,i);
}
int main()
{
int b;
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
s[i][j]=a[i][j-1]+a[i-1][j-1]-a[i-1][j-1];
}
int maxx=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
int ii=0;
for(int q=1;q<=n;q++)
while(s[i][j]-s[i-q][j]-s[i][j-q]+s[i-q][j-q]==pow1(ii))
ii++;
maxx=max(ii,maxx);
}
cout<<maxx;
return 0;
}