#include <bits/stdc++.h>
using namespace std;
int flag[1010][1010];
int m;
int n;
int main() {
  int len = 60;
  scanf("%d", &m);
  int n = 1;
  int idx = 3;
  while (m) {
    if (m & 1) {
      flag[n][idx] = flag[idx][n] = 1;
      idx++;
      for (int i = 1; i < len - 1; i++) {
        flag[idx - 1][idx] = flag[idx][idx - 1] = 1;
        idx++;
      }
      flag[idx - 1][2] = flag[2][idx - 1] = 1;
    }
    m >>= 1;
    len -= 2;
    if (m) {
      flag[n][idx] = flag[idx][n] = 1;
      idx++;
      flag[n][idx] = flag[idx][n] = 1;
      idx++;
      flag[idx - 2][idx] = flag[idx][idx - 2] = 1;
      flag[idx - 1][idx] = flag[idx][idx - 1] = 1;
      n = idx;
      idx++;
    }
  }
  printf("%d\n", idx - 1);
  for (int i = 1; i <= idx - 1; i++) {
    for (int j = 1; j <= idx - 1; j++) {
      if (i == j)
        printf("N");
      else if (flag[i][j])
        printf("Y");
      else
        printf("N");
    }
    puts("");
  }
}
