#include <bits/stdc++.h>
using namespace std;
int main() {
  char adj[(3 * (32) + 3)][(3 * (32) + 3)];
  for (int i = 0; i < (3 * (32) + 3); i++)
    for (int j = 0; j < (3 * (32) + 3); j++) adj[i][j] = 'N';
  (adj[1][3] = 'Y', adj[3][1] = 'Y');
  (adj[1][4] = 'Y', adj[4][1] = 'Y');
  (adj[(3 * (32) + 3) - 1][2] = 'Y', adj[2][(3 * (32) + 3) - 1] = 'Y');
  for (int i = 0; i < (32) - 1; i++) {
    (adj[3 + i * 3][6 + i * 3] = 'Y', adj[6 + i * 3][3 + i * 3] = 'Y');
    (adj[3 + i * 3][7 + i * 3] = 'Y', adj[7 + i * 3][3 + i * 3] = 'Y');
    (adj[4 + i * 3][6 + i * 3] = 'Y', adj[6 + i * 3][4 + i * 3] = 'Y');
    (adj[4 + i * 3][7 + i * 3] = 'Y', adj[7 + i * 3][4 + i * 3] = 'Y');
    (adj[5 + i * 3][8 + i * 3] = 'Y', adj[8 + i * 3][5 + i * 3] = 'Y');
  }
  int k;
  cin >> k;
  for (int idx = 4; k != 0; k = k >> 1, idx = idx + 3) {
    if (k & 1) {
      (adj[idx][idx + 1] = 'Y', adj[idx + 1][idx] = 'Y');
    }
  }
  printf("%d\n", (3 * (32) + 3) - 1);
  for (int i = 1; i < (3 * (32) + 3); i++) {
    for (int j = 1; j < (3 * (32) + 3); j++) {
      putchar(adj[i][j]);
    }
    putchar('\n');
  }
  return 0;
}
