from collections import deque INF = 1000 W, H = map(int, input().split()) C = [list(input()) for _ in range(H)] def check(i, j): return 0 <= i < H and 0 <= j < W for i in range(H): for j in range(W): if C[i][j] == '.': si, sj = i, j break else: continue break # si, sj から 01BFS dist = [[INF] * (W) for _ in range(H)] dist[si][sj] = 0 que = deque() que.append((si, sj)) while que: i, j = que.popleft() for ii, jj in [(0, -1), (0, 1), (-1, 0), (1, 0)]: ni, nj = i+ii, j+jj if check(ni, nj): # . だったら 0 if C[ni][nj] == '.' and dist[ni][nj] > dist[i][j]: dist[ni][nj] = dist[i][j] que.appendleft((ni, nj)) # # だったら 1 if C[ni][nj] == '#' and dist[ni][nj] > dist[i][j] + 1: dist[ni][nj] = dist[i][j] + 1 que.append((ni, nj)) # こたえ for i in range(H): for j in range(W): if C[i][j] == '.' and dist[i][j] != 0: exit(print(dist[i][j]))