Fox Ciel wants to write a task for a programming contest. The task is: "You are given a simple undirected graph with *n* vertexes. Each its edge has unit length. You should calculate the number of shortest paths between vertex 1 and vertex 2."

Same with some writers, she wants to make an example with some certain output: for example, her birthday or the number of her boyfriend. Can you help her to make a test case with answer equal exactly to *k*?
The first line contains a single integer *k* (1 ≤ *k* ≤ 10<sup class="upper-index">9</sup>).
n = int(input())
print(n+2)
print('NN', end = '')
for i in range(n):
    if i != n -1:
        print('Y', end = '')
    else:
        print('Y')
print('NN', end = '')
for i in range(n):
    if i != n -1:
        print('Y', end = '')
    else:
        print('Y')
for i in range(n):
    print('YY', end = '')
    for i in range(n):
        if i != n -1:
            print('N', end = '')
        else:
            print('N')    