#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define ll long long #define rep(i, n) for (int i = 0; i < (n); i++) #define coutf(f) cout << fixed << setprecision(f) #define all(v) (v).begin(), (v).end() #define rall(v) (v).rbegin(), (v).rend() const int inf = 1e9; const ll INF = 1e18; using Graph = vector>; int main() { string s; cin >> s; vector> d(26, vector(26)); rep(i, 26) rep(j, 26) cin >> d[i][j]; vector> ans(26, vector(26, 'Y')); vector mx(26, -inf); rep(i, s.size()) { rep(j, 26) { if (i - mx[j] < d[j][s[i] - 'a']) ans[j][s[i] - 'a'] = 'N'; } mx[s[i] - 'a'] = i; } rep(i, 26) { rep(j, 26) cout << ans[i][j] << " "; cout << endl; } return 0; }