https://www.acmicpc.net/problem/1025
debug
import math
def check_square(num):
return int(math.sqrt(num)) * int(math.sqrt(num)) == num
n, m = map(int, input().split())
graph = []
for _ in range(n):
graph.append(list(map(int, input().split())))
moves = [[m, 0], [-m, 0], [0, m], [0, -m], [m, m], [m, -m], [-m, m], [-m, -m]]
ans = []
for i in range(n):
for j in range(m):
tmp = ''
for move in moves:
for m_val in range(1, max(n, m) + 1):
print(move[0] * m_val + i)
print(move[0] * m_val )
print(move[1] * m_val + j )
if 0 <= move[0] * m_val + i < n and 0 <= move[1] * m_val + j < m:
tmp += str(graph[move[0] * m_val + i][move[1] * m_val + j])
if check_square(int(tmp)):
ans.append(int(tmp))
else:
break
print(ans)
print(max(ans))