#include <bits/stdc++.h>
using namespace std;
#define int long long
#define INF 1e18
int n, oa = 1, ea = 1;
int query(int l, int r) {
cout << "? " << l << " " << r << endl;
int ans; cin >> ans;
return ans;
}
void odd(int l, int r) {
if (l >= r) return;
int m = (l + r) / 2;
while (m - oa >= 1 && m + oa <= n && query(m - oa, m + oa)) {
oa++;
}
odd(l, m - oa);
odd(m + oa, r);
}
void even(int l, int r) {
if (l >= r) return;
int m = (l + r) / 2;
while (m - ea + 1 >= 1 && m + ea <= n && query(m - ea + 1, m + ea)) {
ea++;
}
even(l, m - ea + 1);
even(m + ea, r);
}
void solve() {
cin >> n;
odd(1, n);
even(1, n);
cout << "! " << max(oa * 2 - 1, ea * 2) << endl;
}
int32_t main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
solve();
return 0;
}