#include<iostream>
#include<vector>
#include"combo.h"
using namespace std;
vector<char> available;
string guess_sequence(int N)
{
string ans = "";
if(press("AB"))
{
if(press("A")) ans.push_back('A');
else ans.push_back('B');
}
else
{
if(press("X")) ans.push_back('X');
else ans.push_back('Y');
}
if(ans[0] != 'A') available.push_back('A');
if(ans[0] != 'B') available.push_back('B');
if(ans[0] != 'X') available.push_back('X');
if(ans[0] != 'Y') available.push_back('Y');
int curL = 1;
while(curL < N-2)
{
string cur = ans;
cur.push_back(available[0]);
cur.push_back(available[1]);
cur.push_back(available[0]);
cur.push_back(available[2]);
cur.push_back(available[2]);
cur.push_back(available[2]);
int cr = press(cur);
if(cr == curL + 2)
{
string cur1 = ans;
cur1.push_back(available[0]);
cur1.push_back(available[1]);
int an = press(cur1);
if(an == curL + 2)
{
ans.push_back(available[0]);
ans.push_back(available[1]);
}
else if(an == curL + 1)
{
ans.push_back(available[0]);
ans.push_back(available[2]);
}
else
{
ans.push_back(available[2]);
ans.push_back(available[2]);
}
curL+=2;
}
else if(cr == curL + 1)
{
string cur1 = ans;
cur1.push_back(available[2]);
cur1.push_back(available[0]);
int an = press(cur1);
if(an == curL + 2)
{
ans.push_back(available[2]);
ans.push_back(available[0]);
}
else if(an == curL + 1)
{
ans.push_back(available[2]);
ans.push_back(available[1]);
}
else
{
ans.push_back(available[0]);
ans.push_back(available[0]);
}
curL+=2;
}
else
{
ans.push_back(available[1]);
curL++;
}
}
if(curL == N-2)
{
string cur = ans;
cur.push_back(available[0]);
if(press(cur) == N-1)
{
ans.push_back(available[0]);
}
else
{
cur = ans;
ans.push_back(available[1]);
if(press(cur) == N-1)
{
ans.push_back(available[1]);
}
else
{
ans.push_back(available[2]);
}
}
}
return ans;
}