import sys input = sys.stdin.readline N=int(input()) X=[[-2]*(N+1) for i in range(N+1)] qq=0 while True: qq+=1 A=[0]*(N*2) USE=[0]*(N+1) ind=0 for i in range(1,N+1): if ind+1>=len(A): break for j in range(i+1,N+1): if USE[i]==0 and USE[j]==0 and X[i][j]==-2: if ind+1=len(A): break if max(A)==0: break print("?",*A,flush=True) ret=input().split() for i in range(0,len(A),2): if i+1": X[k][j]=1 else: X[k][j]=-1 ANS=[0]*(N+1) for i in range(1,N+1): for j in range(1,N+1): if X[i][j]==1: ANS[i]+=1 elif X[i][j]==-1: ANS[j]+=1 LL=[] for i in range(1,N+1): LL.append((ANS[i],i)) LL.sort() LANS=[LL[i][1] for i in range(len(LL))] print("!",*LANS,flush=True)