############################################################# import sys sys.setrecursionlimit(10**7) from heapq import heappop,heappush from collections import deque,defaultdict,Counter from bisect import bisect_left, bisect_right from itertools import product,combinations,permutations from math import sin,cos #from math import isqrt #DO NOT USE PyPy ipt = sys.stdin.readline iin = lambda :int(ipt()) lmin = lambda :list(map(int,ipt().split())) ############################################################# H,W = lmin() T = [list(input()) for _ in range(H)] st = [(1,1)] d = [] for i in range(-1,2): for j in range(-1,2): if i|j == 0: continue d.append((i,j)) def func(S): st = [(1,1)] visited = [[0]*W for _ in range(H)] while st: i,j = st.pop() if i == H-2 and j == W-2: return True for di,dj in d: ni = di+i nj = dj+j if 1<=ni= H-3 and j >= W-3: continue if T[i][j] == ".": T[i][j] = "#" if not func(T): print(1) exit() T[i][j] = "." print(2)