h, w = map(int, input().split()) S = [list(input()) for _ in range(h)] ans = 1 DP = [0 for _ in range(w)] for i in range(w): DP[i] = S[0][i] == '#' for i in range(h - 1): NDP = [0 for _ in range(w)] for j in range(w): NDP[j] = S[i + 1][j] == '#' for j in range(1, w): if NDP[j] == 1: NDP[j] = min(NDP[j - 1], DP[j], DP[j - 1]) + 1 ans = max(ans, NDP[j]) DP = NDP print((ans + 1) // 2)