N, M = map(int,input().split())
matrix = [list(input()) for _ in range(N)]
visited = [[0]*M for _ in range(N)]
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
q = [(0, 0)]
visited[0][0] = 1
while q:
current = q.pop(0)
x = current[0]
y = current[1]
if x == N-1 and y == M-1:
print(visited[x][y])
break
for dir in range(4):
nx = x+dx[dir]
ny = y+dy[dir]
if 0<=nx<N and 0<=ny<M and visited[nx][ny] == 0 and matrix[nx][ny] == '1':
visited[nx][ny] = visited[x][y]+1
q.append((nx,ny))
BFS의 교과서같은 문제. 프로그래머스 코테를 광탈해서 오늘은 좀 짧게 써야겠다.