#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100 + 10;
string s[MAXN];
int n;
bool mark[MAXN][MAXN];
bool ans = false;
void Solve() {
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++) {
      if (s[i][j] == '#' && !mark[i][j]) {
        if (j < 1 || j > (n - 2) || i >= (n - 2)) {
          ans = true;
          return;
        }
        if (mark[i + 1][j] || mark[i + 1][j - 1] || mark[i + 1][j + 1] ||
            mark[i + 2][j] || s[i + 1][j] != '#' || s[i + 1][j + 1] != '#' ||
            s[i + 1][j - 1] != '#' || s[i + 2][j] != '#') {
          ans = true;
          return;
        }
        mark[i][j] = true;
        mark[i + 1][j] = true;
        mark[i + 1][j - 1] = true;
        mark[i + 1][j + 1] = true;
        mark[i + 2][j] = true;
      }
    }
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) cin >> s[i];
  Solve();
  if (ans)
    cout << "NO" << endl;
  else
    cout << "YES" << endl;
  return 0;
}
