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