#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-8;
const int INF = (1 << 30) - 1;
int K;
int M[100][100];
int main() {
  scanf("%d", &K);
  M[1][3] = M[3][1] = M[1][4] = M[4][1] = 1;
  M[2][89] = M[89][2] = 1;
  int st = 2;
  for (int i = 2; i <= 29; ++i) {
    M[st + 1][st + 4] = M[st + 4][st + 1] = 1;
    M[st + 1][st + 5] = M[st + 5][st + 1] = 1;
    M[st + 2][st + 4] = M[st + 4][st + 2] = 1;
    M[st + 2][st + 5] = M[st + 5][st + 2] = 1;
    M[st + 3][st + 6] = M[st + 6][st + 3] = 1;
    st += 3;
  }
  if (K & 1) {
    M[1][90] = M[90][1] = 1;
    M[5][90] = M[90][5] = 1;
  }
  K >>= 1;
  int cnt = 2;
  while (K) {
    if (K & 1) {
      M[cnt + 1][cnt + 3] = M[cnt + 3][cnt + 1] = 1;
      M[cnt + 2][cnt + 3] = M[cnt + 3][cnt + 2] = 1;
    }
    K >>= 1;
    cnt += 3;
  }
  printf("90\n");
  for (int i = 1; i <= 90; ++i) {
    for (int j = 1; j <= 90; ++j) {
      printf("%c", M[i][j] ? 'Y' : 'N');
    }
    puts("");
  }
  return 0;
}
