#include using namespace std; #define rep(i,n) for(int i=0;i>n; vectora(n); rep(i,n)cin>>a[i]; int sum=0; vector>v(32); auto add=[&](int x,int cnt){ rep(j,32){ if(x>>j&1){ v[j].emplace(cnt); } } sum^=x; }; auto erase=[&](int x,int cnt){ rep(j,32){ if(x>>j&1){ v[j].erase(cnt); } } sum^=x; }; auto next=[&](){ assert(sum!=0); int x=31-__builtin_clz(sum); int idx=*v[x].begin(); int cnt=a[idx]-(a[idx]^sum); erase(a[idx],idx); a[idx]-=cnt; add(a[idx],idx); cout<>ret; //cerr<>idx>>k; idx--; erase(a[idx],idx); a[idx]-=k; add(a[idx],idx); int ret; cin>>ret; //cerr<