# 黒を平行移動2グループに分けられるか # 平行移動(di, dj)で全探索 # WA出た、djはマイナスもあるな # 黒が0のときもダメだ、黒のカウントが2以上の偶数チェック必要 H, W = map(int, input().split()) S = [] S_num = [] black_count = 0 for i in range(H): temp = input() S.append(temp) black_count += temp.count('#') s = [] for t in temp: if t == '.': s.append(0) else: s.append(1) S_num.append(s) if black_count == 0 or black_count%2 == 1: print('NO') exit() ans = 'NO' for di in range(0, H): for dj in range(1-W, W): if (di, dj) == (0, 0): continue #print('di', di, 'dj', dj) color = [[0]*W for i in range(H)] for i in range(H): for j in range(W): #print('i', i, 'j', j) if S_num[i][j] == 1 and 0<=i+di