from heapq import * N = int(input()) seq = [0] L = 1 for R in range(2,N+1): print("?", L, R, flush = True) x = int(input()) seq.append(x) seq.reverse() hq = [] for x in range(1,N+1): heappush(hq,-x) used = [False] * (N+1) ans = [0] * N for i in range(N-1): diff = seq[i] - seq[i+1] pos = N - i if diff == 0: while hq and used[-hq[0]]: _ = heappop(hq) x = heappop(hq) v = -x else: v = pos - diff ans[pos-1] = v used[v] = True for i in range(1,N+1): if used[i] == False: ans[0] = i print("!", *ans)