def func(d, r, field): find = False for y in range(len(field)): ny = y + d if not (0 <= ny < len(field)): continue for x in range(len(field[y])): if field[y][x] == '#': nx = x + r if 0 <= nx < len(field[y]) and field[ny][nx] == '#': find = True field[y][x] = 0 field[ny][nx] = 1 else: return False for line in field: if '#' in line: return False return find def main(): h, w = map(int, input().split()) field = [] num_of_sharps = 0 for _ in range(h): line = list(input()) field.append(line) num_of_sharps += line.count('#') if num_of_sharps % 2 != 0: print("NO") return for i in range(50): for j in range(-50, 50): if i == 0 and j <= 0: continue if func(i, j, [[i for i in j] for j in field]): print("YES") return print("NO") if __name__ == '__main__': main()