#include <bits/stdc++.h>   using namespace std;   const int N = 1000;   const int inf = (int)1e9 + 1;   const long long big = (long long)1e18 + 1;   const int P = 239;   const int MOD = (int)1e9 + 7;   const int MOD1 = (int)1e9 + 9;   const double eps = 1e-9;   const double pi = atan2(0, -1);   const int ABC = 26;   int cnt = 0, len, s, f;   vector<int> g[N];   void solve(int k) {     if (k == 1) {       g[0].push_back(1);       g[1].push_back(0);       s = 0;       f = 1;       len = 1;       cnt += 2;     } else if (k % 2 == 0) {       solve(k / 2);       g[cnt].push_back(s);       g[s].push_back(cnt);       g[cnt + 1].push_back(s);       g[s].push_back(cnt + 1);       g[cnt + 2].push_back(cnt);       g[cnt].push_back(cnt + 2);       g[cnt + 2].push_back(cnt + 1);       g[cnt + 1].push_back(cnt + 2);       s = cnt + 2;       len += 2;       cnt += 3;     } else {       solve(k - 1);       for (int i = 0; i < len; i++) {         if (i == len - 1) {           g[cnt - 1].push_back(f);           g[f].push_back(cnt - 1);         } else {           g[cnt - 1].push_back(cnt);           g[cnt].push_back(cnt - 1);           cnt++;         }       }     }   }   char ans[N][N];   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.precision(20);     int k;     cin >> k;     solve(k);     int id[cnt];     int curr = 2;     for (int i = 0; i < cnt; i++)       if (i == s)         id[i] = 0;       else if (i == f)         id[i] = 1;       else         id[i] = curr++;     for (int i = 0; i < cnt; i++)       for (int j = 0; j < cnt; j++) ans[i][j] =  N ;     for (int i = 0; i < cnt; i++)       for (int j : g[i]) ans[id[i]][id[j]] =  Y ;     cout << cnt <<   n ;     for (int i = 0; i < cnt; i++) {       for (int j = 0; j < cnt; j++) cout << ans[i][j];       cout <<   n ;     }     return 0;   }   