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 '#'.
def main():
    n = int(input())
    grid = [list(input()) for _ in range(n)]

    neighbors = [(0, 0), (1, 0), (-1, 0), (0, 1), (0, -1)] 
    for r in range(1, n-1):
        for c in range(1, n-1):
            coords2remove = []
            for neigh in neighbors:
                a, b = r + neigh[0], c + neigh[1]
                if grid[a][b] == '#':
                    coords2remove.append((a, b))

            if len(coords2remove) == 5:
                for a, b in coords2remove:
                    grid[a][b] = '.'


    for r in range(n):
        for c in range(n):
            if grid[r][c] == '#':
                print('NO')
                return

    print('YES')
                        
if __name__ == '__main__':
    main()
