#include "combo.h"
#include "bits/stdc++.h"
using namespace std;
string guess_sequence(int N) {
char ff = '$';
if (press("A")) ff = 'A';
else if (press("B")) ff = 'B';
else if (press("X")) ff = 'X';
else ff = 'Y';
string ans = "";
ans += ff;
for (int i = 1; i < N; ++i) {
string t = "";
if (ff == 'A') {
t += ans, t += 'B', t += ans, t += "XX", t += ans, t += "XY", t += ans, t += "XB";
if (t.size() > 4*N){
t = ans;
t += 'X';
if (press(t) == N) return t;
t.pop_back();
t += 'Y';
if (press(t) == N) return t;
t.pop_back();
t += 'B';
if (press(t) == N) return t;
t.pop_back();
t += 'A';
return t;
}
int sz = press(t);
if (sz == ans.size()) {
ans += 'Y';
}
else if (sz == ans.size() + 1) {
ans += 'B';
}
else ans += 'X';
}
else if (ff == 'B') {
t += ans, t += 'A', t += ans, t += "XX", t += ans, t += "XY", t += ans, t += "XA";
if (t.size() > 4*N){
t = ans;
t += 'X';
if (press(t) == N) return t;
t.pop_back();
t += 'Y';
if (press(t) == N) return t;
t.pop_back();
t += 'B';
if (press(t) == N) return t;
t.pop_back();
t += 'A';
return t;
}
int sz = press(t);
if (sz == ans.size()) {
ans += 'Y';
}
else if (sz == ans.size() + 1) {
ans += 'A';
}
else ans += 'X';
}
else if (ff == 'X') {
t += ans, t += 'A', t += ans, t += "BB", t += ans, t += "BY", t += ans, t += "BA";
if (t.size() > 4*N){
t = ans;
t += 'X';
if (press(t) == N) return t;
t.pop_back();
t += 'Y';
if (press(t) == N) return t;
t.pop_back();
t += 'B';
if (press(t) == N) return t;
t.pop_back();
t += 'A';
return t;
}
int sz = press(t);
if (sz == ans.size()) {
ans += 'Y';
}
else if (sz == ans.size() + 1) {
ans += 'A';
}
else ans += 'B';
}
else {
t += ans, t += 'A', t += ans, t += "XX", t += ans, t += "XA", t += ans, t += "XB";
if (t.size() > 4*N){
t = ans;
t += 'X';
if (press(t) == N) return t;
t.pop_back();
t += 'Y';
if (press(t) == N) return t;
t.pop_back();
t += 'B';
if (press(t) == N) return t;
t.pop_back();
t += 'A';
return t;
}
int sz = press(t);
if (sz == ans.size()) {
ans += 'B';
}
else if (sz == ans.size() + 1) {
ans += 'A';
}
else ans += 'X';
}
}
return ans;
}