#include <bits/stdc++.h>
using namespace std;
#define int long long
#define INF 1e18
int query(int l, int r) {
cout << "? " << l << " " << r << endl;
int ans; cin >> ans;
return ans;
}
void solve() {
int n;
cin >> n;
auto check_odd = [&](int x) {
for (int i = 1; i <= n; i++) {
int l = i - x / 2;
int r = i + x / 2;
if (l < 1 || r > n) continue;
if (query(l, r)) return true;
}
return false;
};
auto check_even = [&](int x) {
for (int i = 1; i <= n; i++) {
int l = i - x / 2 + 1;
int r = i + x / 2;
if (l < 1 || r > n) continue;
if (query(l, r)) return true;
}
return false;
};
int l = 1, r = n, ans = 1;
while (l <= r) {
int m = (l + r) / 2;
bool can = (m % 2 ? check_odd(m) : check_even(m));
if (can) {
ans = m;
l = m + 1;
} else {
r = m - 1;
}
}
cout << "! " << ans << endl;
}
int32_t main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
solve();
return 0;
}