#import pdb; pdb.set_trace() import copy import math def main(): (h, w) = map(int, input().split()) s = [] for i in range(h): s.append(list(map(int, list(input().replace("#", "1").replace(".", "0"))))) depth = min(int(math.ceil(w / 2)), int(math.ceil(h / 2))) maxi = 1 for k in range(1, depth): for j in range(k, depth): for i in range(1, w - j): a = j b = i if s[a][b] == k: s[a][b] = min(s[a + 1][b + 1], s[a + 1][b], s[a + 1][b - 1], s[a][b - 1], s[a - 1][b - 1], s[a - 1][b], s[a - 1][b + 1], s[a][b + 1]) + 1 maxi = k for i in range(1, h - j): a = i b = j if s[a][b] == k: s[a][b] = min(s[a + 1][b + 1], s[a + 1][b], s[a + 1][b - 1], s[a][b - 1], s[a - 1][b - 1], s[a - 1][b], s[a - 1][b + 1], s[a][b + 1]) + 1 maxi = k for i in range(1, w - j): a = h - 1 - j b = i if s[a][b] == k: s[a][b] = min(s[a + 1][b + 1], s[a + 1][b], s[a + 1][b - 1], s[a][b - 1], s[a - 1][b - 1], s[a - 1][b], s[a - 1][b + 1], s[a][b + 1]) + 1 maxi = k for i in range(1, h - j): a = i b = w - 1 - j if s[a][b] == k: s[a][b] = min(s[a + 1][b + 1], s[a + 1][b], s[a + 1][b - 1], s[a][b - 1], s[a - 1][b - 1], s[a - 1][b], s[a - 1][b + 1], s[a][b + 1]) + 1 maxi = k print(maxi) if __name__ == '__main__': main()