import sys import io, os input = sys.stdin.readline h, w = map(int, input().split()) S = [str(input().rstrip()) for i in range(h)] S = ['.'*(w+2)]+['.'+s+'.' for s in S]+['.'*(w+2)] from collections import deque INF = 10**18 q = deque([]) dist = [INF]*((h+2)*(w+2)) for y in range(h+2): for x in range(w+2): if S[y][x] == '.': dist[y*(w+2)+x] = 0 q.append(y*(w+2)+x) while q: v = q.popleft() y, x = divmod(v, w+2) for dy in range(-1, 2): for dx in range(-1, 2): if dy == 0 and dx == 0: continue ny, nx = y+dy, x+dx if 0 <= ny < h+2 and 0 <= nx < w+2: if dist[ny*(w+2)+nx] > dist[y*(w+2)+x]+1: q.append(ny*(w+2)+nx) dist[ny*(w+2)+nx] = dist[y*(w+2)+x]+1 print(max(dist))