import sys input = sys.stdin.readline h, w = map(int, input().split()) g = [input().strip() for _ in range(h)] INF = 10 ** 18 up_a = [INF] * w up_b = [INF] * (w - 1) up_c = [INF] * w up_d = [INF] * (w - 1) for r in range(h): row = g[r] a = [INF] * w b = [INF] * (w - 1) c = [INF] * w d = [INF] * (w - 1) for col in range(w): now = INF if r == 0 and col == 0: now = 0 if row[col] != '#': if r: x = up_a[col] if x < now: now = x x = up_c[col] if x < now: now = x if col: x = a[col - 1] if x < now: now = x x = b[col - 1] if x < now: now = x a[col] = now if col + 1 < w: x = now + 1 if r: y = up_b[col] if y < x: x = y y = up_d[col] if y < x: x = y b[col] = x if r + 1 < h: x = now + 1 if col: y = c[col - 1] if y < x: x = y y = d[col - 1] if y < x: x = y c[col] = x if r + 1 < h and col + 1 < w: x = b[col] if c[col] < x: x = c[col] d[col] = x + 1 up_a = a up_b = b up_c = c up_d = d res = up_a[-1] if res >= INF: print(-1) else: print(res + h + w - 2)