#include <bits/stdc++.h>
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
#define mp make_pair
#define pb push_back
#define all(a) (a).begin(), (a).end()
#define sz(a) a.size()
#define srt(a) sort(all(a))
#define mem(a, h) memset(a, (h), sizeof(a))
#define f first
#define s second
#define fore(i, b, e) for(int i = b; i < e; i++)
#define forg(i, b, e, m) for(int i = b; i < e; i+=m)
//int in(){int r=0,c;for(c=getchar();c<=32;c=getchar());if(c=='-') return -in();for(;c>32;r=(r<<1)+(r<<3)+c-'0',c=getchar());return r;}
using namespace std;
//using namespace __gnu_pbds;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> ii;
typedef vector<int> vi;
typedef vector<ii> vii;
typedef vector<ll> vll;
//typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> ordered_set;
//find_by_order kth largest order_of_key <
const int tam = 100010;
const int MOD = 1e9+7;
const int MOD1 = 988244535;
const double EPS = 1e-9;
const double PI = acos(-1);
int cribi[100010];
int has[100010];
int main()
{
ios::sync_with_stdio(0); cin.tie(0);
//freopen("qwe.txt", "r", stdin);
//freopen("asd.txt", "w", stdout);
int n = 1;
cin>>n;
string s = "YYYyYYYYyyYYYYYyyyYYYYY", ax;
fore(i, 0, n / 2 - !(n&1))
cout<<'Y';
cout<<'y';
fore(i, 0, n / 2)
cout<<'Y';
cout<<'\n';
return 0;
}
// read the question correctly (is y a vowel? what are the exact constraints?)
// look out for SPECIAL CASES (n=1?) and overflow (ll vs int?) ARRAY OUT OF BOUNDSS2
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Ci8vI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgovLyNpbmNsdWRlIDxleHQvcGJfZHMvdHJlZV9wb2xpY3kuaHBwPgojZGVmaW5lIG1wCQkJCW1ha2VfcGFpcgojZGVmaW5lIHBiCQkJCXB1c2hfYmFjawojZGVmaW5lIGFsbChhKQkJCShhKS5iZWdpbigpLCAoYSkuZW5kKCkKI2RlZmluZSBzeihhKQkJCWEuc2l6ZSgpCiNkZWZpbmUgc3J0KGEpCQkJc29ydChhbGwoYSkpCiNkZWZpbmUgbWVtKGEsIGgpCQltZW1zZXQoYSwgKGgpLCBzaXplb2YoYSkpCiNkZWZpbmUgZiAJCQkJZmlyc3QKI2RlZmluZSBzIAkJCQlzZWNvbmQKI2RlZmluZSBmb3JlKGksIGIsIGUpCWZvcihpbnQgaSA9IGI7IGkgPCBlOyBpKyspCiNkZWZpbmUgZm9yZyhpLCBiLCBlLCBtKQlmb3IoaW50IGkgPSBiOyBpIDwgZTsgaSs9bSkKLy9pbnQgaW4oKXtpbnQgcj0wLGM7Zm9yKGM9Z2V0Y2hhcigpO2M8PTMyO2M9Z2V0Y2hhcigpKTtpZihjPT0nLScpIHJldHVybiAtaW4oKTtmb3IoO2M+MzI7cj0ocjw8MSkrKHI8PDMpK2MtJzAnLGM9Z2V0Y2hhcigpKTtyZXR1cm4gcjt9Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwovL3VzaW5nIG5hbWVzcGFjZSBfX2dudV9wYmRzOwoKdHlwZWRlZiBsb25nIGxvbmcgCQlsbDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgCQl1bGw7CnR5cGVkZWYgcGFpcjxpbnQsIGludD4gIGlpOwp0eXBlZGVmIHZlY3RvcjxpbnQ+ICAgICB2aTsKdHlwZWRlZiB2ZWN0b3I8aWk+ICAgICAgdmlpOwp0eXBlZGVmIHZlY3RvcjxsbD4gICAgICB2bGw7Ci8vdHlwZWRlZiB0cmVlPGludCxudWxsX3R5cGUsbGVzczxpbnQ+LHJiX3RyZWVfdGFnLHRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT4gb3JkZXJlZF9zZXQ7Ci8vZmluZF9ieV9vcmRlciBrdGggbGFyZ2VzdCAgb3JkZXJfb2Zfa2V5IDwKY29uc3QgaW50IHRhbSA9IDEwMDAxMDsKY29uc3QgaW50IE1PRCA9IDFlOSs3Owpjb25zdCBpbnQgTU9EMSA9IDk4ODI0NDUzNTsKY29uc3QgZG91YmxlIEVQUyA9IDFlLTk7CmNvbnN0IGRvdWJsZSBQSSA9IGFjb3MoLTEpOwppbnQgY3JpYmlbMTAwMDEwXTsKaW50IGhhc1sxMDAwMTBdOwppbnQgbWFpbigpCnsKCWlvczo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOwoJLy9mcmVvcGVuKCJxd2UudHh0IiwgInIiLCBzdGRpbik7CgkvL2ZyZW9wZW4oImFzZC50eHQiLCAidyIsIHN0ZG91dCk7CiAgICBpbnQgbiA9IDE7CiAgICBjaW4+Pm47CiAgICBzdHJpbmcgcyA9ICJZWVl5WVlZWXl5WVlZWVl5eXlZWVlZWSIsIGF4OwogICAgZm9yZShpLCAwLCBuIC8gMiAtICEobiYxKSkKICAgICAgICBjb3V0PDwnWSc7CiAgICBjb3V0PDwneSc7CiAgICBmb3JlKGksIDAsIG4gLyAyKQogICAgICAgIGNvdXQ8PCdZJzsKICAgIGNvdXQ8PCdcbic7CglyZXR1cm4gMDsKfQovLyByZWFkIHRoZSBxdWVzdGlvbiBjb3JyZWN0bHkgKGlzIHkgYSB2b3dlbD8gd2hhdCBhcmUgdGhlIGV4YWN0IGNvbnN0cmFpbnRzPykKLy8gbG9vayBvdXQgZm9yIFNQRUNJQUwgQ0FTRVMgKG49MT8pIGFuZCBvdmVyZmxvdyAobGwgdnMgaW50PykgQVJSQVkgT1VUIE9GIEJPVU5EU1My