#include #include #include #include #include using namespace std; void ask(int x, int y){ cout<<"? "<>n; int ret; if(n<=168){ int mx=1, mx2=2; ask(1, 2); cin>>ret; if(ret==2) swap(mx, mx2); for(int i=3; i<=n; i++){ ask(i, mx2); cin>>ret; if(ret==mx2) continue; ask(i, mx); cin>>ret; if(ret==mx){ mx2=i; }else{ mx2=mx; mx=i; } } cout<<"! "< st; while(t>ret; v=ret; } t++; } vector vec; for(int i=1; i<=n; i++){ if(st.find(i)!=st.end()) continue; ask(v, i); cin>>ret; if(ret==i) vec.push_back(i); } int mx=v, mx2=vec[0]; ask(mx, mx2); cin>>ret; if(ret==mx2) swap(mx, mx2); for(int i=1; i>ret; if(ret==mx2) continue; ask(mx, vec[i]); cin>>ret; if(ret==mx) mx2=vec[i]; else{ mx2=mx; mx=vec[i]; } } cout<<"! "<