shit = raw_input() lis = shit.split() n = int(lis[0]) m = int(lis[1]) field = [] field2 = [] for i in range(n+1): field.append([]) field2.append([]) for j in range(m+1): field[i].append(1) field2[i].append(0) for i in range(n): shit = raw_input() for j in range(m): if shit[j] == '.': field[i][j] = 0 else: field[i][j] = 1 field2[0][0] = 1 step = 1 for k in range(n): step += 1 for i in range(n): for j in range(m): if field2[i][j] == step-1: if (field2[i+1][j] <= step-1) and (field[i+1][j] == 0): field2[i+1][j] = step if (field2[i][j+1] <= step-1) and (field[i][j+1] == 0): field2[i][j+1] = step maxim = 1 for i in range(n): for j in range(m): if field2[i][j] > maxim: maxim = field2[i][j] print maxim