n = int(input()) Y = [1] * n N = 200 A = [0 for _ in range(n//N+1)] X = [] for i in range(n): A[i//N] += 1 for i in range(1, n): print("?", i, n) X.append(int(input())) X.append(0) Ans = [] for i in range(n-1): x0 = X[i] x1 = X[i+1] t = x0-x1 j = 0 while A[j] <= t: t -= A[j] j += 1 for k in range(N): if not Y[j*N+k]: continue if t == 0: Y[j*N+k] = 0 A[j] -= 1 Ans.append(j*N+k+1) break t -= 1 for i in range(n): if Y[i]: Ans.append(i+1) print("!", *Ans)