from collections import deque W,H = map(int,input().split()) C = [input().strip() for _ in range(H)] A = [[100 for _ in range(W)] for _ in range(H)] flag = 0 for i in range(H): for j in range(W): if C[i][j]==".": i0 = i j0 = j flag = 1 break if flag==1:break que = deque([(i0,j0,0)]) A[i0][j0]=0 while que: y,x,d = que.popleft() if x+1d: A[y][x+1]=d que.append((y,x+1,A[y][x+1])) elif x+1d+1: A[y][x+1]=d+1 que.append((y,x+1,d+1)) if y-1>=0 and C[y-1][x]==".": if A[y-1][x]>d: A[y-1][x]=d que.append((y-1,x,d)) elif y-1>=0 and C[y-1][x]=="#": if A[y-1][x]>d+1: A[y-1][x]=d+1 que.append((y-1,x,d+1)) if x-1>=0 and C[y][x-1]==".": if A[y][x-1]>d: A[y][x-1]=d que.append((y,x-1,d)) elif x-1>=0 and C[y][x-1]=="#": if A[y][x-1]>d+1: A[y][x-1]=d+1 que.append((y,x-1,d+1)) if y+1d: A[y+1][x]=d que.append((y+1,x,d)) elif y+1d+1: A[y+1][x]=d+1 que.append((y+1,x,d+1)) dmin = -1 for i in range(H): for j in range(W): if C[i][j]=="." and A[i][j]>0: dmin = A[i][j] break if dmin>0:break print(dmin)