#include <stdio.h>
#define max(p,q)((p)>(q)?(p):(q))
#define min(p,q)((p)<(q)?(p):(q))

int a[1500][1500];
int dp[1500][1500];
int main(){
	int h,w;
	scanf("%d%d",&h,&w);
	for(int i=0;i<h;i++)for(int j=0;j<w;j++)scanf("%d",&a[i+1][j+1]);
	int ans=0;
	for(int i=1;i<=h;i++)for(int j=1;j<=w;j++)if(!a[i][j]){
		dp[i][j]=min(dp[i-1][j-1],min(dp[i-1][j],dp[i][j-1]))+1;
		ans=max(ans,dp[i][j]);
	}
	printf("%d\n",ans*ans);
}
