# @EXPECTED_RESULTS@: RUN_TIME_ERROR, WRONG_ANSWER
import random
from sys import stdout

random.seed(0)
n = int(input())
result = []

while len(result) < n:
    num_ops = min(n - len(result), 16)
    a = list(range(20, num_ops+20))
    query = "? " + "0 "*(n - num_ops - len(result) + 1) + " ".join(str(ai) for ai in a) \
            + " " + " ".join("1" if b else "0" for b in reversed(result))
    print(query)
    stdout.flush()

    output = int(input())
    values = [0]*(2**(num_ops + 1))
    for i in range(1, 2**(num_ops + 1)):
        if i & 1:
            values[i] = (values[i // 2] * a[i.bit_length()-2]) % (10**9 + 7)
        else:
            values[i] = (values[i // 2] + a[i.bit_length()-2]) % (10**9 + 7)
    values = values[2**num_ops:]
    idx = values.index(output)
    for _ in range(num_ops):
        result.append(idx % 2 == 1)
        idx //= 2

print("!", "".join("x" if b else "+" for b in reversed(result)))
