H, W = map(int, input().split()) S = [input() for _ in range(H)] dp = [[0] * W for _ in range(H)] for h in range(H): if S[h][0] == '#': dp[h][0] = 1 for w in range(1, W): if S[0][w] == '#': dp[0][w] = 1 M = dp[0][0] for h in range(1, H): for w in range(1, W): if S[h][w] == '#': dp[h][w] = min(dp[h - 1][w], dp[h][w - 1], dp[h - 1][w - 1]) + 1 M = max(M, dp[h][w]) print((M + 1) // 2)