from collections import defaultdict from math import isqrt N = int(input()) def question(a, b): if a > b: a, b = b, a print("?", a, b) return int(input()) def answer(x): print("!", x) D = defaultdict(list) for i in range(1, 10): for j in range(1, 10): D[i*j].append((i, j)) A = [] for i in range(N-1): A.append(question(i, N-1)) if A.count(0) == N-1: answer(-1) elif A.count(0) == N-2: idx = 0 for i in range(N-1): if A[i] != 0: idx = i break if len(D[A[idx]]) == 1: A.append(D[A[idx]][0][0]) A[idx] = D[A[idx]][0][0] answer("".join(map(str, A[::-1]))) else: answer(-1) else: a, b = -1, -1 for i in range(N-1): if A[i] != 0: if a == -1: a = i elif b == -1: b = i break res = question(a, b) A.append(isqrt((A[a]*A[b])//res)) for i in range(N-1): A[i] //= A[-1] answer("".join(map(str, A[::-1])))