#include<iostream>
#include<algorithm>
using namespace std;
const int N=3e7;
int path[N];
int n,idx;
//我们使用二进制的形式来解决这个问题
//移位运算的优先级高于按位与的优先级
void dfs(int x,int st)
{
if(x==n)
{
path[idx++]=st;
return;
}
//选----1
dfs(x+1,st|1<<x);
//不选--0
dfs(x+1,st);
}
int main()
{
cin>>n;
dfs(0,0);
sort(path,path+idx);//进行排序
for(int i=0;i<idx;i++)
{
//拿到每一位
//首位-->>最后一位
for(int j=n-1;~j;j--)
{
//如果是1就输出Y
if(path[i]>>j&1) printf("Y");
else printf("N");
}
puts("");
}
return 0;
}
常看常新