def check(a,b): valid = [vi[:] for vi in V] for i in range(h): for j in range(w): if valid[i][j]: if i+a >= h or j+b >= w or valid[i+a][j+b]==0: return 0 else: valid[i+a][j+b] = 0 return 1 h,w = map(int,input().split()) b = [input() for _ in range(h)] V = [[1 if b[i][j]== "#" else 0 for j in range(w)] for i in range(h)] ok = 0 for i in range(h): for j in range(w): if i==j==0: continue if check(i,j): ok = 1 break if ok: break for i in range(h): V[i] = V[i][::-1] for i in range(h): for j in range(w): if i==j==0: continue if check(i,j): ok = 1 break if ok: break any1 = max(max(vi) for vi in V) print("YES" if ok and any1 else "NO")