import sys from collections import deque def main(): N, M = map(int, sys.stdin.readline().split()) grid = [] dots = [] for i in range(N): line = sys.stdin.readline().strip() grid.append(line) for j in range(M): if line[j] == '.': dots.append((i, j)) K = len(dots) if K % 2 != 0: print("NO") return if K == 0: print("NO") return # Though problem states there are at least two # Check connectivity using BFS visited = set() start = dots[0] q = deque([start]) visited.add(start) dirs = [(-1, 0), (1, 0), (0, -1), (0, 1)] while q: i, j = q.popleft() for di, dj in dirs: ni, nj = i + di, j + dj if 0 <= ni < N and 0 <= nj < M: if grid[ni][nj] == '.' and (ni, nj) not in visited: visited.add((ni, nj)) q.append((ni, nj)) if len(visited) != K: print("NO") return # Check if it's a single row or column if N == 1 or M == 1: print("NO") return print("YES") if __name__ == "__main__": main()