#include <stdio.h>
#include <stdlib.h>

main()
{
  int **d, t;
  int w, h;
  int i, j, min, ans=0;
  scanf("%d%d", &h, &w);
  d = (int **)malloc(sizeof(int *) * h);
  for(i=0; i<h; i++)
    d[i] = (int *)malloc(sizeof(int) * w);
  for(i=0; i<h; i++){
    for(j=0; j<w; j++){
      scanf("%d", &t);
      if(t==0){
        min=w+h;
        if(i>0){
          if(min>d[i-1][j]) min=d[i-1][j];
          if(j>0){
            if(min>d[i-1][j-1]) min=d[i-1][j-1];
          }
          if(min>d[i][j-1]) min=d[i][j-1];
        }
       if((d[i][j] = min) < ans) ans=min;
      }else{
        d[i][j] = 0;
      }
    }
  }
  printf("%d\n", ans*ans);
  for(i=0; i<n; i++) free(d[i]);
  free(d);
  return 0;
}