#include<bits/stdc++.h>
using namespace std;

typedef long long ll;

int q(int l, int r){
    cout << "? " << l << " " << r << endl;
    int idx; cin >> idx;
    return idx;
}
void solve(){
    int n;
    cin >> n;
    int idx = q(1, n);
    int L = -1, R = -1;
    if(1 < idx) L = q(1, idx);
    if(n > idx) R = q(idx, n);
    if(R == idx){ // 最大值在右
        int ans = n, l = idx + 1, r = n, mid;
        while(l <= r){
            mid = l + r >> 1;
            int t = q(idx, mid);
            if(t == idx){
                ans = min(ans, mid);
                r = mid - 1;
            }else{
                l = mid + 1;
            }
        }
        cout << "! " << ans << endl;
    }else{
        int ans = 1, l = 1, r = idx - 1, mid;
        while(l <= r){
            mid = l + r >> 1;
            int t = q(mid, idx);
            if(t == idx){
                ans = max(ans, mid);
                l = mid + 1;
            }else{
                r = mid - 1;
            }
        }
        cout << "! " << ans << endl;
    }
}
// 5 1 2 3 4
int main(){
    // #define LOCAL
#ifdef LOCAL
    freopen("in.in", "r", stdin);
    freopen("out.out", "w", stdout);
#endif  
    int _ = 1;
    // cin >> _;
    for(int i = 1; i <= _; ++i) solve();
}