Fox Ciel has a board with *n* rows and *n* columns. So, the board consists of *n* × *n* cells. Each cell contains either a symbol '.', or a symbol '#'.

A cross on the board is a connected set of exactly five cells of the board that looks like a cross. The picture below shows how it looks.

Ciel wants to draw several (may be zero) crosses on the board. Each cross must cover exactly five cells with symbols '#', and any cell with symbol '#' must belong to some cross. No two crosses can share a cell.

Please, tell Ciel if she can draw the crosses in the described way.
The first line contains an integer *n* (3 ≤ *n* ≤ 100) — the size of the board.

Each of the next *n* lines describes one row of the board. The *i*-th line describes the *i*-th row of the board and consists of *n* characters. Each character is either a symbol '.', or a symbol '#'.
n = int(input())
rows = [['.']*(n+2)]
for i in range(n):
    rows.append(['.'] + list(input()) + ['.'])
rows.append(['.']*(n+2))
def checkPlus(centerX, centerY):
    if(rows[centerY][centerX]=='#' and rows[centerY-1][centerX]=='#' and 
    rows[centerY+1][centerX]=='#' and rows[centerY][centerX+1]=='#' and 
    rows[centerY][centerX-1]=='#'):
        rows[centerY][centerX]='.' 
        rows[centerY-1][centerX]='.'
        rows[centerY+1][centerX]='.'
        rows[centerY][centerX+1]='.'
        rows[centerY][centerX-1]='.'

for y in range(1, n+1):
    for x in range(1, n+1):
        checkPlus(x, y)

for y in range(1, n+1):
    for x in range(1, n+1):
        if(rows[y][x]=='#'):
            print('NO')
            break
    else:
        continue
    break
else:
    print('YES')