#include <bits/stdc++.h>
using namespace std;
const long long INF = 1ll << 32;
int n;
int vis[101][101];
int dr[5] = {1, -1, 0, 0, 0};
int dc[5] = {0, 0, 1, -1, 0};
vector<string> v;
bool ch(int r, int c) {
  bool re = 1;
  for (int i = 0; i < 5; i++) {
    int nr = r + dr[i];
    int nc = c + dc[i];
    if (v[nr][nc] != '#' || vis[nr][nc]) re = 0;
  }
  return re;
}
void mark(int r, int c) {
  for (int i = 0; i < 5; i++) {
    int nr = r + dr[i];
    int nc = c + dc[i];
    vis[nr][nc]++;
  }
  return;
}
int main() {
  cin >> n;
  v.resize(n);
  for (int i = 0; i < n; i++) cin >> v[i];
  for (int i = 1; i < n - 1; i++)
    for (int j = 1; j < n - 1; j++)
      if (v[i][j] == '#')
        if (ch(i, j)) mark(i, j);
  bool ans = 1;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++)
      if (v[i][j] == '#' && vis[i][j] != 1) {
        puts("NO");
        return 0;
      }
  puts("YES");
  return 0;
}
