N=int(input()) #print(N) C=0 if C==0: J=[i+1 for i in range(N)] L=[] #print(len(J),J[0],J[-1]) for i in range(10): W=[] if len(J)%2==1: W.append(J[-1]) for j in range(len(J)//2): #print(W,J) print("?",J[j*2],J[j*2+1],flush=True) n=int(input()) W.append(n) if n==J[j*2]: L.append([n,J[j*2+1]]) else: L.append([n,J[j*2]]) #print("i",i,J,W) if len(W)==1: C=W[0] break else: J=W if C!=0: #print(C) J=[] for i in L: if i[0]==C: J.append(i[1]) for i in range(10): W=[] if len(J)%2==1: W.append(J[-1]) for j in range(len(J)//2): print("?",J[j*2],J[j*2+1],flush=True) n=int(input()) W.append(n) #print("I",J,W) if len(W)==1: print("!",W[0],flush=True) exit() else: J=W