#include "bits/stdc++.h"
using namespace std;

#ifdef ORD_SET
    #include <ext/pb_ds/assoc_container.hpp>
    #include <ext/pb_ds/tree_policy.hpp>
    using namespace __gnu_pbds;
    template<typename T>
    using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
#endif
#ifdef ROPE
    #include <ext/rope>
    using namespace __gnu_cxx;
#endif

// #pragma comment(linker, "/stack:200000000")
// #pragma GCC optimize("Ofast")
// #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,tune=native")

using ll = long long;
using ld = long double;
#define pll pair<ll, ll>
#define pb push_back
#define ff first
#define ss second
#define sp " "
#define en "\n"
#define bg begin()
#define ed end()
// #define sz size()
#define sz(x) (ll)(x).size()
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()

void freopen(string s) { freopen((s+".in").c_str(), "r", stdin); freopen((s+".out").c_str(), "w", stdout); }
void EvrazGold() { ios_base::sync_with_stdio(false); cin.tie(NULL); }
ll binmul(ll a, ll b, ll c) { ll res = 0; while(b) { if(b&1) (res += a) %= c; (a += a) %= c; b >>= 1; } return res; }
ll binpow(ll a, ll b, ll c) { ll res = 1; while(b) { if(b&1) (res *= a) %= c; (a *= a) %= c; b >>= 1; } return res; }
template<typename T> T gcd(T a, T b) { if(b==0) return a; return gcd(b, a%b); }
template<typename T> T lcm(T a, T b) { return a/gcd(a, b)*b; }
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
ld rnd() { return rng()%INT_MAX*1.0/INT_MAX; }
const ll inf = 1e18+7, MX = LLONG_MAX, MN = LLONG_MIN;
const ll mod = 1e9+7, N = 3e5+5;
string s[15];
ll used[15][15], cnt;
vector<pair<ll, ll>> g[15][15];

void dfs(ll x, ll y) {
    used[x][y] = 1, cnt++;
    for(auto [r, c]: g[x][y]) {
        if(!used[r][c]) dfs(r, c);
    }
}

void psycho() {
    ll n = 10;
    for(ll i=1; i<=n; i++) {
        cin>>s[i], s[i] = ' '+s[i];
    }
    ll one = 0;
    for(ll i=1; i<=n; i++) {
        for(ll j=1; j<=n; j++) {
            if(s[i][j]=='#') {
                if(s[i-1][j]=='#') g[i][j].pb({i-1, j}), g[i-1][j].pb({i, j});
                if(s[i+1][j]=='#') g[i][j].pb({i+1, j}), g[i+1][j].pb({i, j});
                if(s[i][j-1]=='#') g[i][j].pb({i, j-1}), g[i][j-1].pb({i, j});
                if(s[i][j+1]=='#') g[i][j].pb({i, j+1}), g[i][j+1].pb({i, j}); 
                if(s[i-1][j-1]=='#') {
                    cout<<"NO\n";
                    return;
                }
                if(s[i-1][j+1]=='#') {
                    cout<<"NO\n";
                    return;
                }
                if(s[i+1][j-1]=='#') {
                    cout<<"NO\n";
                    return;
                }
                if(s[i+1][j+1]=='#') {
                    cout<<"NO\n";
                    return;
                }
            }
        }
    }
    vector<ll> a(15);
    for(ll i=1; i<=n; i++) {
        for(ll j=1; j<=n; j++) {
            if(!used[i][j] && s[i][j]=='#') {
                cnt = 0;
                dfs(i, j);
                if(cnt<1 || cnt>4) {
                    cout<<"NO\n";
                    return;
                }
                a[cnt]++;
            }
        }
    }
    if(a[1]==4 && a[2]==3 && a[3]==2 && a[4]==1) cout<<"YES\n";
    else cout<<"NO\n";
    return;
}

signed main(/*Nurmyrza, Beibarys, Amir*/) {
    // freopen("");
    EvrazGold();
    ll tt = 1;
    // cin>>tt;
    for(ll i=1; i<=tt; i++) {
        psycho();
    }
}
