I,O,R=input,print,range N=int(I()) n=R(N) Q=[0]*N u=set(i+1for i in n) def S(Q,k): v=sorted(set(u)) for i in n:Q[i],k=v.pop(k//F[N-i-1]),k%F[N-i-1] F=[1] for i in n:F+=[F[-1]*(i+1)] l,r=0,F[N] while l"0":l=m else:r=m S(Q,l) O("!",*Q)