#include "combo.h"
#include <bits/stdc++.h>
using namespace std;
string find_first()
{
if (press("AB"))
{
if (press("A")) return "A";
else return "B";
}
else
{
if (press("X")) return "X";
else return "Y";
}
}
string find_last(string &past, int N, vector<string> &avail)
{
if (press(past + avail[0]) == N) return avail[0];
if (press(past + avail[1]) == N) return avail[1];
return avail[2];
}
void add_next(string &cur, vector<string> &avail, int &now, int N)
{
if (cur.size() == N-1) return;
string ttry = cur + avail[0] + avail[0] + cur + avail[0] + avail[1] + cur + avail[0] + avail[2] + cur + avail[1];
int out = press(ttry);
cur += avail[2-out+now];
now++;
add_next(cur, avail, now, N);
}
string guess_sequence(int N) {
vector<string> vv = {"A", "B", "X", "Y"};
vector<string> avail;
string first = find_first();
for (string ch : vv) if (ch != first) avail.push_back(ch);
string cur = "" + first;
int now = 1;
add_next(cur, avail, now, N);
cur += find_last(cur, N, avail);
// cout << cur;
return cur;
}