import java.util.*;
class main{
    public static void main(String []args){
        Scanner sc = new Scanner(System.in);
        int a =sc.nextInt();
        int b =sc.nextInt();
        if(a<0||b<0){
            System.out.println("Invalid input");
        }
        int matrix [][]=new int [a][b];
           int dp[][]=new intp [a][b];
        for(int i=0;i<a;i++){
            for(int j=0;j<b;j++){
                matrix[i][j]=sc.nextInt();
                dp[i][j]=0;
            }
        }
    int maxSize=0;
    for(int i =0;i<a;i++){
        for(int j=0;j<b;j++){
            if(matrix[i][j]==1){
                if(i==0||j==0){
                    dp[i][j]=1;
                }else{
                    dp[i][j]=1+Math.min(dp[i-1][j-1],Math.min(dp[i-1][j],dp[i][j-1]));
                }
                maxSize=Math.max(maxSize,dp[i][j]);
            }else{
                dp[i][j]=0;
            }
        }
    }
     int maxArea=maxSize*maxSize;
     System.out.println(maxArea);
          
        
        
    }
}