#include <bits/stdc++.h>   using namespace std;   int a[2000][2000], k, p[2000], Index;   void add(int x, int y) { a[x][y] = a[y][x] = 1; }   int main() {     scanf( %d , &k);     int maxbit = 0;     for (int i = (1); i <= (30); ++i)       if ((1 << i) & k) maxbit = i;     Index = 2;     int cur = ++Index;     add(1, cur);     for (int i = (1); i <= (maxbit); ++i) {       add(cur, Index + 1);       add(cur, Index + 2);       add(Index + 1, Index + 3);       add(Index + 2, Index + 3);       cur = Index += 3;       p[maxbit - i] = cur;     }     add(cur, 2);     add(1, ++Index);     cur = Index;     for (int i = (maxbit - 1); i >= (0); --i) {       add(cur, ++Index), cur = Index;       if ((1 << i) & k) add(cur, p[i]);       add(cur, ++Index), cur = Index;     }     printf( %d n , Index);     for (int i = (1); i <= (Index); ++i) {       for (int j = (1); j <= (Index); ++j)         if (a[i][j])           printf( Y );         else           printf( N );       puts(  );     }     assert(Index <= 150);     return 0;   }   