N = int(input()) A = [0]*N B = [] for i in range(N-2,-1,-1): print(f"? {i} {N-1}") A[i] = int(input()) if A[i]>0: B.append(i) if len(B)==0: print("! -1") elif len(B)==1: x = A[B[0]] B = [] for i in range(1,10): if x%i==0 and x//i<=9: B.append((i,x//i)) if len(B)==1: ans = [0]*N ans[N-1] = B[0][0] for i in range(N-2,-1,-1): ans[i] = A[i]//ans[N-1] ans = ans[::-1] print(f"! {''.join(str(x) for x in ans)}") else: print("! -1") else: B = sorted(B) print(f"? {B[0]} {B[1]}") A[N-1] = int(input()) ans = [0]*N x = A[B[0]]*A[B[1]]//A[N-1] for i in range(1,10): if i*i==x: ans[N-1] = i break for i in range(N-2,-1,-1): ans[i] = A[i]//ans[N-1] ans = ans[::-1] print(f"! {''.join(str(x) for x in ans)}")