M과 N의 길이 중 더 작은 값을 최대 변의 길이로 하는 정사각형까지만 직사각형 안에 존재할 수 있다. 따라서 변의 길이를 2부터 N과 M 중 더 작은 수까지 늘려나가면서 정사각형이 존재하는지를 판단한다.
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
arr = []
for _ in range(n):
arr.append(list(input())[:-1])
def find_square(length, ans):
for i in range(n - (length - 1)):
for j in range(m - (length - 1)):
if (
arr[i][j] == arr[i][j + (length - 1)]
and arr[i][j] == arr[i + (length - 1)][j]
and arr[i][j] == arr[i + (length - 1)][j + (length - 1)]
):
return length * length
return ans
ans = 1
for length in range(2, n + 1):
ans = find_square(length, ans)
print(ans)