import sys
def dfs(x, y, dep):
d[x][y] = dep
for i in range(1, 5):
tx, ty = x + fx[i], y + fy[i]
# 如果tx、ty可以探索(该点在地图内,且该点是'.',且走到该点的不熟更少)
if 1 <= tx <= n and 1 <= ty <= m and a[tx][ty] == '.' and dep + 1 < d[tx][ty]:
dfs(tx, ty, dep + 1)
n, m = map(int, input().split())
a = [['' for _ in range(m+1)] for _ in range(n+1)]
d = [[sys.maxsize for _ in range(m+1)] for _ in range(n+1)]
fx = [0, 0, 1, 0, -1]
fy = [0, 1, 0, -1, 0]
for i in range(1, n+1):
row = input()
for j in range(1, m+1):
a[i][j] = row[j-1]
# 设置起点步数为1
dfs(1, 1, 1)
print(d[n][m])