#include using namespace std; int main(void){ int n; cin>>n; stack>st; vector>ans; for(int i=n-2;i>=0;i--){ st.push({i,i+1,n-1,0}); } int q=0; while(!st.empty()){ arraytmp=st.top(); st.pop(); if(q>4500)return 1; q++; cout<<"? 1 "<>a; if(a==-1)return 1; if(a){ if(tmp[2]==tmp[1]){ ans.push_back({tmp[0],tmp[1]}); }else{ st.push({tmp[0],tmp[1],(tmp[1]+tmp[2])/2,0}); st.push({tmp[0],(tmp[1]+tmp[2])/2+1,tmp[2],1}); } }else if(tmp[3]==1){ tmp=st.top(); st.pop(); if(tmp[2]==tmp[1]){ ans.push_back({tmp[0],tmp[1]}); }else{ st.push({tmp[0],tmp[1],(tmp[1]+tmp[2])/2,0}); st.push({tmp[0],(tmp[1]+tmp[2])/2+1,tmp[2],1}); } } } cout<<"! "<