#include <bits/stdc++.h>
using namespace std;
const int N = 110;
string f[N];
int pt[5][2] = {{0, 0}, {1, 0}, {2, 0}, {1, -1}, {1, 1}};
int operate(string g[N], int n) {
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      if (g[i][j] == '.') continue;
      if (j <= 0 || j >= n - 1 || i >= n - 2) return 0;
      for (int k = 0; k < 5; k++) {
        if (g[i + pt[k][0]][j + pt[k][1]] == '.') return 0;
        g[i + pt[k][0]][j + pt[k][1]] = '.';
      }
    }
  }
  return 1;
}
int main() {
  int n, i, j;
  while (scanf("%d", &n) != EOF) {
    for (i = 0; i < n; i++) f[i].clear();
    for (i = 0; i < n; i++) cin >> f[i];
    cout << (operate(f, n) ? "YES" : "NO") << endl;
  }
}
