import sys def ask(a, b): print("?", a, b, flush=True) x = int(sys.stdin.readline()) if x == -1: sys.exit() return x def done(s): print("!", s, flush=True) sys.exit() n = int(sys.stdin.readline()) vals = [0] * (n - 1) nz = [] for i in range(n - 1): vals[i] = ask(i, n - 1) if vals[i] > 0: nz.append(i) ans = [0] * n if not nz: done(-1) if len(nz) == 1: i = nz[0] p = vals[i] ways = [] for a in range(1, 10): if p % a == 0: b = p // a if 1 <= b <= 9: ways.append((a, b)) if len(ways) != 1: done(-1) lead, other = ways[0] ans[n - 1] = lead ans[i] = other else: i = nz[0] j = nz[1] mid = ask(i, j) sq = vals[i] * vals[j] // mid lead = int(sq ** 0.5) while (lead + 1) * (lead + 1) <= sq: lead += 1 while lead * lead > sq: lead -= 1 ans[n - 1] = lead for k in range(n - 1): ans[k] = vals[k] // lead done("".join(str(ans[i]) for i in range(n - 1, -1, -1)))