def main(): import sys sys.setrecursionlimit(1 << 25) N, M = map(int, sys.stdin.readline().split()) grid = [sys.stdin.readline().strip() for _ in range(N)] # Collect all viewable cells cells = [] for i in range(N): for j in range(M): if grid[i][j] == '.': cells.append((i, j)) K = len(cells) if K == 0: print("NO") return # Check if all cells are connected from collections import deque visited = [[False]*M for _ in range(N)] start = cells[0] q = deque([start]) visited[start[0]][start[1]] = True connected = 0 directions = [(-1,0),(1,0),(0,-1),(0,1)] while q: i, j = q.popleft() connected += 1 for di, dj in directions: ni, nj = i+di, j+dj if 0<=ni