import sys N=int(raw_input()) ans = [i+1 for i in range(N)] z = [0 for i in range(1500)] z=' '.join(map(str,z)) e=0 for i in range(N*2): l=i%2 r=l+int((N-l)/2)*2 q=' '.join(map(str, ans[l:r])) if (r-l)!=0: q=q[0:r*4]+' '+z[0:(N-(N-l)/2)*4] else: q=z[0:(N-(N-l)/2)*4] print '?',q[0:len(q)-1] ret = raw_input().split() sys.stdout.flush() f=True for j in range((N-l)/2): if ret[j]=='>': f=False ans[j*2+i%2],ans[j*2+i%2+1]=ans[j*2+i%2+1],ans[j*2+i%2] if f:e+=1 else:e=0 if e==2:break print '!', ' '.join(map(str, ans)) sys.stdout.flush()