#include <bits/stdc++.h>
const long long inf = 9000000000000000000ll;
using namespace std;
int n, k, b[3000];
bool s[3000][3000];
pair<int, int> a[3000];
int main() {
  cin >> k;
  memset(s, false, sizeof(s));
  s[1][3] = true;
  s[3][1] = true;
  s[1][4] = true;
  s[4][1] = true;
  a[1] = make_pair(3, 4);
  n = 4;
  for (int i = 1; i <= 29; i++) {
    n++;
    s[n][n - 1] = true;
    s[n - 1][n] = true;
    s[n][n - 2] = true;
    s[n - 2][n] = true;
    n++;
    s[n][n - 2] = true;
    s[n - 2][n] = true;
    s[n][n - 3] = true;
    s[n - 3][n] = true;
    a[i + 1] = make_pair(n - 1, n);
  }
  n++;
  b[0] = n;
  for (int i = 1; i <= 29; i++) {
    n++;
    s[n][n - 1] = true;
    s[n - 1][n] = true;
    b[i] = n;
  }
  s[2][n] = true;
  s[n][2] = true;
  for (int i = 30; i >= 0; i--)
    if ((k | (1 << i)) == k) {
      if (i != 0) {
        int v1 = a[i].first, v2 = a[i].second, v3 = b[i];
        s[v1][v3] = true;
        s[v3][v1] = true;
        s[v2][v3] = true;
        s[v3][v2] = true;
      } else {
        s[1][b[0]] = true;
        s[b[0]][1] = true;
      }
    }
  cout << n << endl;
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++)
      if (s[i][j])
        printf("%c", 'Y');
      else
        printf("%c", 'N');
    printf("\n");
  }
  return 0;
}
