#include <bits/stdc++.h>
int n;
char a[105][105];
int dfs(int x, int y) {
  if (x - 1 < 0 || x + 1 >= n || y - 1 < 0 || y + 1 > n)
    return 0;
  else if (a[x + 1][y] == '#' && a[x - 1][y] == '#' && a[x][y + 1] == '#' &&
           a[x][y - 1] == '#') {
    a[x][y] = '.';
    a[x + 1][y] = '.';
    a[x - 1][y] = '.';
    a[x][y + 1] = '.';
    a[x][y - 1] = '.';
    return 0;
  } else
    return 0;
}
int main() {
  int flag = -1;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%s", a[i]);
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      if (a[i][j] == '#') dfs(i, j);
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      if (a[i][j] == '#') {
        flag = 0;
      }
    }
  }
  if (flag == 0)
    printf("NO\n");
  else
    printf("YES\n");
  return 0;
}
