from collections import deque
N, M = map(int, input().split())
lst = []
for i in range(N):
lst.append(list(map(int,str(input()))))
# 상하좌우
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
visited = []
queue = deque()
queue.append((0, 0))
while queue:
x, y = queue.popleft()
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
# 지역 밖을 벗어나거나, 벽일 경우에 차단
if nx < 0 or nx >= N or ny < 0 or ny >= M or lst[nx][ny]==0 :
continue
# 1을 만났을 경우
if lst[nx][ny] == 1:
# 1을 만난 친구에게 -> 나의 값 +1
lst[nx][ny] = lst[x][y] +1
# 새로 만난 친구의 좌표를 queue에 저장
queue.append((nx, ny))
print(lst[N-1][M-1])