import strutils, sequtils, algorithm, math proc solve(): string = var hw = readLine(stdin).split(' ').map(parseInt) board = newSeq[string](hw[0]) tBoard = newSeq[string](hw[0]) co: int tmpCo: int flag = false for i in countup(0, hw[0] - 1): board[i] = readLine(stdin) co += board[i].count('#') if co == 0 or co mod 2 == 1: return "NO" for hMove in countup(0, hw[0] - 1): for wMove in countup(-hw[1] + 1, hw[1] - 1): if hMove == 0 and wMove == 0: continue flag = false tmpCo = 0 for h in countup(0, hw[0] - 1): tBoard[h] = board[h] for h in countup(0, hw[0] - 1): if hMove + h >= hw[0]: break for w in countup(0, hw[1] - 1): if wMove + w >= hw[1] or wMove + w < 0: break if tBoard[h][w] == '#': if tBoard[hMove + h][wMove + w] == '#': tmpCo += 1 tBoard[h][w] = 'R' tBoard[hMove + h][wMove + w] = 'B' else: flag = true break # else: # flag = true # break if flag: break if tmpCo == co div 2 and not flag: return "YES" return "NO" echo(solve())