n,m=map(int,input().split())
s=[]
res=-1
for _ in range(n):
s.append(list(input()))
for col in range(n):#행
for row in range(m):#열
for i in range(-n,n):#행 방향 공차
for j in range(-m,m):#열 방향 공차
num=''#완성된 숫자 저장
x,y=row,col#열, 행
while x>=0 and x<m and y>=0 and y<n:#입력된 범위 안에서
if i==0 and j==0:#공차가 0이면 같은 칸을 선택한 것(문제 조건 위배)이고
#무한루프 되므로 정지
break
#가능한 숫자 조합
num+=str(s[y][x])
if int(int(num)**0.5)**2==int(num):#어떤 성수를 제곱한 수인지(완전제곱수)
res=max(int(num),res)#최대 제곱수 구하기
y+=i#행 증가
x+=j#열 증가
print(res)
접근 방법
y+=i
x+=j
을 해준다.