#include <bits/stdc++.h>
using namespace std;
int query(string str);
string guess(int n, int s) {
vector<string> all;
for(int i = 0; i < s; ++i){
string cur(n, i + 'a');
int len = query(cur);
if(len) all.push_back(string(len, i + 'a'));
}
auto solve = [&](auto &self, vector<string> cur) -> string {
if((int) cur.size() == 0) return "";
if((int) cur.size() == 1) return cur[0];
int mid = (int) cur.size() / 2;
vector<string> left, right;
for(int i = 0; i < mid; ++i) left.push_back(cur[i]);
for(int i = mid; i < (int) cur.size(); ++i) right.push_back(cur[i]);
string X = self(self, left), Y = self(self, right);
if((int) X.size() == 0) return Y;
if((int) Y.size() == 0) return X;
string res = X;
int where = 0;
for(auto v : Y){
while(1) {
string working = "";
for(int j = 0; j < (int) res.size(); ++j){
if(j == where) working.push_back(v);
working.push_back(res[j]);
}
if(where == (int) res.size()) working.push_back(v);
where += 1;
if(query(working) == (int) working.size()){
res = working;
break;
}
}
}
//cout << "combining: " << X << " with " << Y << " after combining: " << res << "\n";
return res;
};
return solve(solve, all);
}