#pragma GCC optimize("Ofast") #include using namespace std; #define rep(Ii,Jj,Kk) for(int Ii=(Jj),Ii##_=(Kk);Ii<=Ii##_;Ii++) #define per(Ii,Jj,Kk) for(int Ii=(Jj),Ii##_=(Kk);Ii>=Ii##_;Ii--) typedef long long ll; typedef unsigned long long ull; typedef unsigned uint; typedef long double db; #define fir first #define sec second #define siz(Aa) ((int)(Aa).size()) #define all(Aa) (Aa).begin(),(Aa).end() #define ckmx(Aa,Bb) (Aa=max(Aa,Bb)) #define ckmn(Aa,Bb) (Aa=min(Aa,Bb)) const int N=1<<18; int n,k,s[N],st,root,lst; bool vis[N],to[N],out[N]; void dfs(int x){ for(int y:{x<<1,x<<1|1}){ if(!vis[y]){ vis[y]=true; dfs(y&((1<>T; while(T--){ cin>>n; if(n==1){ cout<<"a"; goto hell; } k=1; while((1<>i&1)+'a'); lst=n-k; while(true){ if(out[root]){ for(int j=root,jj;;j=jj){ if(!lst) goto hell; lst--; cout<