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