import sys from typing import List, Tuple sys.setrecursionlimit(10 ** 6) MOD = 998244353 def dbg(*args, **kwargs): print(*(repr(arg) for arg in args), *(f'{k}: {repr(v)}' for k, v in kwargs.items()), sep='; ', file=sys.stderr, flush=True) def main(): n = int(input()) arr = [] nz = [] for i in range(n - 1): print('?', i, n - 1, flush=True) p = int(input()) arr.append(p) if p != 0: nz.append(i) p1 = [] for i in range(1, 10): if all(j % i == 0 and j // i < 10 for j in arr): p1.append(i) if len(p1) >= 2: if len(nz) < 2: print('!', -1, flush=True) return a, b = nz[0], nz[1] print('?', a, b, flush=True) pab = int(input()) for i in p1: if arr[a] // i * arr[b] // i == pab: p1 = [i] break a = p1[0] print('!', ''.join(map(str, [a] + [i // a for i in arr[::-1]])), flush=True) def _start(): if (ret := main()) is not None: print(*ret) if isinstance(ret, List) or isinstance(ret, Tuple) else print(ret) if __name__ == '__main__': _start()