#include #include #include #include #include #include #include using namespace std; using ll = long long; int f(int i, int j) { cout << "? " << i << ' ' << j << endl; int a; cin >> a; return a; } int main() { int n; cin >> n; int p[1024] = {}; for (int i = 0; i < n; i++) { p[i + 512] = i + 1; } for (int i = 512 - 1; i > 0; i--) { if (p[i * 2 + 1] == 0) { p[i] = p[i * 2]; } else { p[i] = f(p[i * 2], p[i * 2 + 1]); } } vector q; int r = 0; for (int i = 1; i < 512;) { i = i * 2 + (p[i * 2] != p[i]); int t = p[i ^ 1]; if (r == 0) { r = t; } else if (t != 0) { r = f(r, t); } } cout << "! " << r << endl; return 0; }