#include #include #include #include #include #include #include #define llint long long #define inf 1e18 using namespace std; typedef pair P; llint n; vector vec, win[305]; void calc() { int res; vector tmp; for(int i = 0; i+1 < vec.size(); i+=2){ cout << "? " << vec[i] << " " << vec[i+1] << endl; cin >> res; tmp.push_back(res); if(res == vec[i]) win[vec[i]].push_back(vec[i+1]); if(res == vec[i+1]) win[vec[i+1]].push_back(vec[i]); } if(vec.size() % 2) tmp.push_back(vec.back()); vec = tmp; } int main(void) { cin >> n; for(int i = 1; i <= n; i++) vec.push_back(i); while(vec.size() > 1) calc(); int winner = vec[0]; vec.clear(); for(int i = 0; i < win[winner].size(); i++) vec.push_back(win[winner][i]); while(vec.size() > 1) calc(); cout << "! " << vec[0] << endl; return 0; }