从横向和纵向分别扫描,每一行或列记录1的长度,Y横向有两张长度,纵向有三种长度,E和S横纵不同长度都是2,但E的四个角上有1,而S没有,通过这个分辨出来E还是S即可
#include <bits/stdc++.h>
#define int long long
#define endl '\n'
#define sz(x) x.size()
#define lbt(x) (x)&(-x)
#define all(x) x.begin(),x.end()
#define rep(i,n) for(int i=0;i<n;i++)

using namespace std;

typedef pair<int, int> PII;
typedef double db;
const int N = 2e5 + 10, mod = 998244353, inf = 0x3f3f3f3f;
const db EPS = 1e-9;
string s[N];

void solve() {
  int n = 0;
  string p;
  while (cin >> p) {
    s[++n] = p;
  }
  set<int>x, y;
  int a = 2e9, b = 0, c = 2e9, d = 0;
  int m = p.size();
  for (int i = 1; i <= n;i++) {
    int tmp = 0;
    for (int j = 0;j < m;j++) {
      if (s[i][j] == '1') {
        tmp++;
        a = min(a, i);
        b = max(b, i);
        c = min(c, j);
        d = max(d, j);
      }
    }
    if (tmp)x.insert(tmp);
  }
  for (int i = 0; i < m;i++) {
    int tmp = 0;
    for (int j = 1;j <= n;j++) {
      if (s[j][i] == '1')tmp++;
    }
    if (tmp >= 1)y.insert(tmp);
  }
  if (x.size() == y.size()) {
    if (s[a][c] == '1' && s[a][d] == '1' && s[b][c] == '1' && s[b][d] == '1')cout << "E" << endl;
    else cout << "S" << endl;
  }
  else cout << "Y" << endl;
}

signed main() {
  cin.tie(0)->sync_with_stdio(0);
  cout.tie(0);
  int _ = 1;
  // cin >> _ ;
  while (_--)
    solve();
  return 0;
}