def permutations(i, base):
    if i <= 0: return [base]
    prev = permutations(i - 1, base)
    return [*((v + (STEP + 1)) % MOD for v in prev), *((v * (STEP + 1)) % MOD for v in prev)]


MOD, STEP = 1_000_000_007, 16
n, mem, ops = int(input()), {v: i for i, v in enumerate(permutations(STEP, 0))}, []

for i in range(0, n, STEP):
    is_last = i >= n - STEP and n % STEP != 0
    remaining = n + 1 - i
    s = min(remaining, STEP)
    if is_last: mem = {v: i for i, v in enumerate(permutations(s - 1, STEP + 1))}
    print(" ".join(("?", *["0"] * (remaining - STEP), *[str(STEP + 1)] * s, *ops)))
    ops = [*reversed(f"{mem[int(input())]:#0{s + 2}b}"[2 + is_last:]), *ops]

print("! " + "".join(ops).translate(str.maketrans("01", "+x")))
