<aside> 💛
백준 1915번
</aside>
import java.util.Scanner;
public class Practice91 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
long[][] D = new long [1001][1001];
long max = 0;
for(int i = 0; i < n; i++) {
String line = sc.next();
for(int j = 0; j < m; j++) {
D[i][j] = Long.parseLong(String.valueOf(line.charAt(j)));
if(D[i][j] == 1 && i > 0 && j > 0) {
D[i][j] = Math.min(D[i - 1][j - 1], Math.min(D[i - 1][j],D[i][j - 1])) + D[i][j];
}
if(max < D[i][j]) {
max = D[i][j];
}
}
}
long area = max * max;
System.out.println(area);
sc.close();
}
}