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(0)
        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) and (field[i+1][j] == 0):
                    field2[i+1][j] = step
                if (field2[i][j+1] <= step) 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