#include <bits/stdc++.h>
#include "interactive.h"
using namespace std;
vector<int> guess(int n) {
vector<int> ans(n, 0);
ans[0] = ask(1);
map<int, int> mp;
for(int i = 0; (1 << i) <= n; ++i){
vector<int> cur;
for(int j = 2; j <= n; ++j){
if(j & (1 << i)){
cur.push_back(j);
}
}
multiset<int> ms_prev, ms_now;
vector<int> prev = get_pairwise_xor(cur);
cur.push_back(1);
vector<int> now = get_pairwise_xor(cur);
for(auto x : now) ms_now.insert(x);
for(auto x : prev) ms_prev.insert(x);
for(auto x : ms_prev){
ms_now.erase(ms_now.find(x));
}
set<int> st;
for(auto v : ms_now){
st.insert(v);
}
for(auto x : st){
mp[x ^ ans[0]] += (1 << i);
}
}
for(auto [val, pos] : mp){
ans[pos - 1] = val;
}
return ans;
}