w, h= map(int, raw_input().split()) c = [] hole = [] d = [(-1,0),(1,0),(0,-1),(0,1)] for i in xrange(h): c.append(raw_input()) # for i in xrange(h): # print c[i] for i in xrange(h): x = c[i].find('.') if x != -1: hole.append((x,i)) break i = 0 while i < len(hole): for dd in d: x = dd[0] + hole[i][0] y = dd[1] + hole[i][1] if x < 0 or x >= w: continue if y < 0 or y >= h: continue if c[y][x] == '.': if (x,y) not in hole: hole.append((x,y)) i += 1 hole1 = hole[:] e = 0 i = 0 l = len(hole) while True: # print hole if i == l: e += 1 l = len(hole) for dd in d: x = dd[0] + hole[i][0] y = dd[1] + hole[i][1] if x < 0 or x >= w: continue if y < 0 or y >= h: continue if c[y][x] == '#': if (x,y) not in hole: hole.append((x,y)) elif (x,y) not in hole1: print e exit() i += 1 print e