#include "combo.h"
#include <bits/stdc++.h>
using namespace std;
int press(std::string p);
const long long md=1000000007;
const long long b=31;
const long long d=29;
const long long c=61;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
std::string guess_sequence(int N) {
int cur=1;
string st="";
vector<char> ch;
if(press("A")){
st="A";
ch={'B','X','Y'};
}
else if(press("B")){
st="B";
ch={'A','X','Y'};
}
else if(press("X")){
st="X";
ch={'A','B','Y'};
}
else{
st="Y";
ch={'A','B','X'};
}
long long rn=1;
int pre=-1;
while(st.size()<N){
cur=st.size();
bool f=false;
rn=rng();
for(int i=0;i<2;i++){
if(pre!=-1){
if(pre==(i+rn)%3)continue;
if((i+1+rn)%3==pre and i==2){
f=true;
st+=ch[(i+rn)%3];
break;
}
}
string ps=st;
ps+=ch[(i+rn)%3];
long long crn=(rn+i*c)%md;
for(int i=st.size()+1;i<N;i++){
crn=rng();
ps+=ch[(crn)%3];
}
int g=press(ps);
if(g!=st.size()){
f=true;
for(int j=cur;j<g;j++)st+=ps[j];
if(g!=N)pre=ps[g];
break;
}
}
if(!f){
st+=ch[(2+rn)%3];
pre=-1;
}
rn=(rn*d)%md;
}
return st;
}