import sys input = sys.stdin.readline N=int(input()) A=[-1]*N E=[[] for i in range(N)] for i in range(N-1): print("?",i,N-1,flush=True) ret=int(input()) A[i]=ret E[N-1].append((i,ret)) E[i].append((N-1,ret)) X=[] for i in range(N): if A[i]>0: X.append(i) if len(X)>=2: x=X[0] y=X[1] print("?",x,y,flush=True) ret=int(input()) E[x].append((y,ret)) E[y].append((x,ret)) ANS=[] for i in range(1,10): flag=1 S=[-1]*N for j in range(N): if A[j]==0: S[j]=0 S[N-1]=i Q=[N-1] while Q: x=Q.pop() for to,kake in E[x]: if S[to]==-1: if kake%S[x]==0: S[to]=kake//S[x] Q.append(to) else: flag=0 break else: if kake%S[x]==0 and S[to]==kake//S[x]: pass else: flag=0 break if flag==1: ANS.append(S) if len(ANS)==1: S=ANS[0] S.reverse() S="".join(map(str,S)) print("!",S,flush=True) else: print("!",-1,flush=True)