#include <bits/stdc++.h>
using namespace std;
char ch[205][205];
int main() {
  for (int i = 1; i <= 200; i++) {
    for (int j = 1; j <= 200; j++) {
      ch[i][j] = 'N';
    }
  }
  ch[1][3] = 'Y';
  ch[3][1] = 'Y';
  for (int i = 3; i <= 99; i++) {
    if (i % 3 == 0) {
      ch[i][i + 1] = 'Y';
      ch[i + 1][i] = 'Y';
      ch[i][i + 2] = 'Y';
      ch[i + 2][i] = 'Y';
    } else if (i % 3 == 2) {
      ch[i][i + 1] = 'Y';
      ch[i + 1][i] = 'Y';
    } else {
      ch[i][i + 2] = 'Y';
      ch[i + 2][i] = 'Y';
    }
  }
  for (int i = 110; i < 190; i++) {
    ch[i][i + 1] = 'Y';
    ch[i + 1][i] = 'Y';
  }
  ch[190][2] = 'Y';
  ch[2][190] = 'Y';
  int len = 1;
  int dis[32];
  int last = 190;
  int k;
  cin >> k;
  memset(dis, 0, sizeof(dis));
  while (k) {
    if (k & 1) dis[len] = 1;
    k >>= 1;
    len++;
  }
  len--;
  for (int i = 1; i <= len; i++) {
    if (dis[i]) {
      int xx = 2 * (len - i);
      ch[3 * i][last - xx] = 'Y';
      ch[last - xx][3 * i] = 'Y';
    }
  }
  cout << 200 << endl;
  for (int i = 1; i <= 200; i++) {
    for (int j = 1; j <= 200; j++) {
      printf("%c", ch[i][j]);
    }
    printf("\n");
  }
  return 0;
}
