Problem:
Largest Square

Given a matrix (H × W) which contains only 1 and 0, find the area of the largest square matrix which only contains 0s.

Input

H W
c1,1 c1,2 ... c1,W
c2,1 c2,2 ... c2,W
:
cH,1 cH,2 ... cH,W

In the first line, two integers H and W separated by a space character are given. In the following H lines, ci,j, elements of the H × W matrix, are given.

Output

Print the area (the number of 0s) of the largest square.

Constraints

1 ≤ H, W ≤ 1,400

Sample Input

4 5
0 0 1 0 0
1 0 0 0 0
0 0 0 1 0
0 0 0 1 0

Sample Output

4

Solution in Python3 (judge verdict: Accepted)

h, w = map(int, input().split())

dp = [0] * w
max_d = 0
for _ in range(h):
    dp_prev = dp[:]
    tiles = list(map(int, input().split()))
    dp[0] = 0 if tiles[0] else 1
    for i in range(1, w):
        dp[i] = 0 if tiles[i] else min(dp[i-1], dp_prev[i], dp_prev[i-1]) + 1
    max_d = max(max_d, max(dp))

print(max_d**2)