h,w = map(int,input().split())
meiro = []
for i in range(h):
    meiro.append(list(input()))
#進む方向のリスト
d = [(1,0) , (-1,0) , (0,1),(0,-1)]
ans = 0

def search(n,m):
    ans = -1  #最後に次の層に行けなくても+1するから-1から
    
    X = [[0 for i in range(w)] for j in range(h)]  #探索判定用配列
    X[n][m] = 1#初期位置を到達済みにする
    que = [(n,m)]#初期位置をキューに追加
    while que:#キューがからでないなら
        new_que = []#深さ+1で到達済みの点を次のqueにする
        for x,y in que:
            for dx,dy in d:
                if 0<= x+dx < h and 0<= y+dy < w and meiro[x+dx][y+dy] == '.' and X[x+dx][y+dy] == 0:
                    X[x+dx][y+dy] = 1
                    new_que.append((x+dx , y+dy))
        ans += 1
        que = new_que
    return ans
        