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>).
k = int(input())

A = [[0 for i in range(k+1)] for j in range(k+1)]
for i in range(2,k+2):
    A[0][i] = 1 
    A[i][0] = 1 
    A[1][i] = 1 
    A[i][1] = 1 
for c in A:
    x = []
    for z in c:
        if z == 0:
            x.append('N')
        else:
            x.append('Y')
    print("".join(x))
    print("\n")