
#include<bits/stdc++.h>
using namespace std;
const int maxn = 100000+10;

int cnt=0;
int ask(int l,int r){
	cnt++;
	if(l==r) return 0;
	printf("? %d %d\n",l,r);
	fflush(stdout);
	int x;
	scanf("%d",&x);
	return x;
}
int qask(int l,int r,int pos){
	
	int rr=ask(l,pos);
	if(rr==pos){//l-pos
		l=l;
		r=pos;
		while(r-l>1){
			int mid=(l+r)/2;
			if(ask(mid,pos)==pos) l=mid;
			else r=mid;
		}
		return l;
	} else {
		l=pos;r=r;
		while(r-l>1){
			int mid=(l+r)/2;
			if(ask(pos,mid)==pos) r=mid;
			else l=mid;
		}
		return r;
	}
}
int main(int argc, char const *argv[])
{
	int n;
	scanf("%d",&n);
	int pos = qask(1,n,ask(1,n));
	cout<<"! "<<pos<<endl;
	fflush(stdout);
}
