def dfs(hx,hy): C[hy][hx] = "#" U[UN].add((hx,hy)) for dx,dy in dxy: nx = hx + dx ny = hy + dy if 0 <= nx < W and 0 <= ny < H and C[ny][nx] == ".": dfs(nx,ny) dxy = ((1,0),(0,1),(-1,0),(0,-1)) W,H = map(int,raw_input().split()) C = [list(raw_input()) for i in range(H)] U = [set(),set()] UN = 0 for i in range(H): for j in range(W): if C[i][j] == ".": dfs(j,i) UN += 1 print min(abs(x0-x1)+abs(y0-y1) for x0,y0 in U[0] for x1,y1 in U[1])-1