import sequtils,strutils var W,H : int C = newSeq[string](0) cnt : int D = [[0, 1], [1, 0], [-1, 0], [0, -1]] flag : array[21, array[21, bool]] (W, H) = stdin.readline.split.map(parseInt) for h in 1..H: C.add(stdin.readline) proc tansakuA(px, py : int)= C[py][px] = chr(cnt + ord('0')) for d in D: var (ny, nx) = (py + d[1], px + d[0]) if ny >= H or ny < 0: continue if nx >= W or nx < 0: continue if flag[ny][nx] == true or C[ny][nx] == '#': continue flag[ny][nx] = true tansakuA(nx, ny) flag[ny][nx] = false for i in 0..= H: continue if nx < 0 or nx >= W: continue if C[ny][nx] == '#': C[ny][nx] = char(cnt + 1 + ord('0')) elif C[ny][nx] == '0': echo cnt - 1 break tansaku cnt += 1