#include <bits/stdc++.h>
using namespace std;
int k, lg;
bool g[1010][1010];
void add(int a, int b) {
  g[a][b] = true;
  g[b][a] = true;
}
int main() {
  cin >> k;
  for (lg = 0; k >> (lg + 1); lg++)
    ;
  if (k > 1) {
    add(1, 3);
    add(1, 4);
    add(2 * lg + 1, 2);
    add(2 * lg + 2, 2);
    add(99 + lg, 2);
  } else
    add(1, 2);
  if (k & 1) add(1, 100);
  for (int i = 0; i < lg - 1; i++) {
    int x = 3 + 2 * i;
    add(x, x + 2);
    add(x, x + 3);
    add(x + 1, x + 2);
    add(x + 1, x + 3);
    add(100 + i, 101 + i);
    if ((k >> (i + 1)) & 1) {
      add(x, 101 + i);
      add(x + 1, 101 + i);
    }
  }
  cout << 200 << '\n';
  for (int i = 1; i <= 200; i++) {
    for (int j = 1; j <= 200; j++) cout << (g[i][j] ? 'Y' : 'N');
    cout << '\n';
  }
}
