#include<bits/stdc++.h>
using namespace std;
long long n,m;
long long a[3009][3009],s[3009][3009];
int main() {
scanf("%lld%lld",&n,&m);
for(long long i = 1; i<=n; i++) {
for(long long j = 1; j<=m; j++) {
scanf("%lld",&a[i][j]);
}
}
for (long long i = 1; i <= n; i ++){
for (long long j = 1; j <= n; j ++){
s[i][j] = s[i][j - 1] + a[i][j];
}
}
for (long long j = 1; j <= n; j ++){
for (long long i = 1; i <= n; i ++){
s[i][j] += s[i - 1][j];
}
}
// for(long long i =1;i<=n;i++){
// for(long long j = 1;j<=m;j++){
// cout<<s[i][j]<<" ";
// }
// cout<<endl;
// }
long long maxx = -1;
for(long long i = 1; i<=n; i++) {
for(long long j = 1; j<=m; j++) {
for(long long l = 1; l<=min(i,j);l++) {
long long mj = s[i][j]-s[i-l][j]-s[i][j-l]+s[i-l][j-l];
if(mj == l*l) {
maxx = max(maxx,l);
}
cout<<mj<<endl;
}
}
}
cout<<maxx;
// s[x2][y2] - s[x1 - 1][y2] - s[x2][y1 - 1] + s[x1 - 1][y1 - 1]
return 0;
}
90分,WA第五个点,大佬求调