from collections import * from itertools import * from functools import * from heapq import * import sys,math input = sys.stdin.readline H,W = map(int,input().split()) S = [list(input())[:-1] for _ in range(H)] for i in range(H): for j in range(W): S[i][j]=int(S[i][j]=='#') def check(x,y): T = [[0]*(2*W) for _ in range(2*H)] for i in range(H): for j in range(W): T[i][j] += S[i][j] T[i+x][j+y] += S[i][j] flg = True a = 0 b = 0 for i in range(H): for j in range(W): if (S[i][j]==1): if T[i][j]==1: a += 1 if T[i+x][j+y]!=2: flg = False if (T[i][j]==2): b += 1 elif T[i][j]!=0: flg = False return flg&(a==b) for x in range(H): for y in range(W): if x+y==0: continue if check(x,y): print('YES') exit() print('NO')