import sys input = sys.stdin.readline from math import lcm from collections import Counter x=1005 L=35 Primelist=[i for i in range(x+1)] Primelist[1]=0 # 1は素数でないので0にする. for i in Primelist: if i>L: break if i==0: continue for j in range(2*i,x+1,i): Primelist[j]=0 N=int(input()) LIST=[[0]*(N+1) for i in range(N+1)] for i in range(1,N+1): for j in range(1,N+1): x=lcm(i,j) LIST[i][j]=x LIST[j][i]=x SORTED=[[] for i in range(N+1)] for i in range(N+1): SORTED[i]=sorted(LIST[i]) DATA=[[0]*(N+1) for i in range(N+1)] A=[0]*(N+1) B=[0]*(N+1) A[0]=-1 B[0]=-1 for i in range(1,N+1): print("?",1,i,flush=True) x=int(input()) DATA[1][i]=x AS=sorted(DATA[1]) for i in range(1,N+1): if SORTED[i]==AS: A[1]=i break C=Counter(LIST[A[1]]) D=dict() for i in range(1,N+1): if C[LIST[A[1]][i]]==1: D[LIST[A[1]][i]]=i for i in range(1,N+1): if DATA[1][i] in D: B[i]=D[DATA[1][i]] #print(A) #print(B) P=0 ind=-1 for i in range(1,N+1): if B[i]==1: P=1 ind=i break if B[i]!=0 and Primelist[B[i]]!=0: if P