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] sys.stdout.flush() ret = raw_input().split() 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 ans=' '.join(map(str, ans)) print '! '+ans sys.stdout.flush() sys.exit()