import sys readline = sys.stdin.readline N = int(readline()) pred = [None] * N non_zero = [] non_zero_value = [] option = [1,25,49,64,81] for n in range(N-1): sys.stdout.write("?") sys.stdout.write(" ") sys.stdout.write(str(n)) sys.stdout.write(" ") sys.stdout.write(str(N-1)) sys.stdout.write("\n") sys.stdout.flush() ans = int(readline()) if ans != 0: non_zero.append(n) non_zero_value.append(ans) else: pred[n] = ans if non_zero == []: sys.stdout.write("! -1") sys.stdout.write("\n") sys.stdout.flush() elif len(non_zero) == 1: if non_zero_value[0] in option: pred[non_zero[0]] = int(non_zero_value[0] ** 0.5) pred[N-1] = int(non_zero_value[0] ** 0.5) sys.stdout.write("!") sys.stdout.write(" ") sys.stdout.write(''.join(map(str, pred[:,:,-1]))) sys.stdout.write("\n") sys.stdout.flush() else: sys.stdout.write("! -1") sys.stdout.write("\n") sys.stdout.flush() else: sys.stdout.write("?") sys.stdout.write(" ") sys.stdout.write(str(non_zero[0])) sys.stdout.write(" ") sys.stdout.write(str(non_zero[1])) sys.stdout.write("\n") sys.stdout.flush() ans = int(readline()) pred[N-1] = int((non_zero_value[0] * non_zero_value[1] / ans) ** 0.5) for i in range(len(non_zero)): pred[non_zero[i]] = non_zero_value[i] // pred[non_zero[N-1]] sys.stdout.write("!") sys.stdout.write(" ") sys.stdout.write(''.join(map(str, pred[:,:,-1]))) sys.stdout.write("\n") sys.stdout.flush()