//interactive #define U j=0;auto a=v.begin(),b=v.end();for(;a!=b;a++)R[j++]=*a #define E v.erase(Q[i]=R[K/(t=c.fac(N-i-1))]);K%=t ll@N,R[N],j,K,t,F;VI Q(N);setu,v;rep(i,N)u.insert(i+1);if(N<9){Combc;F=c.fac(N)-1;K=F-bsearch_min[ll,k,0,F][K=F-k;v=u;rep(i,N){U;E;}wt("?",Q);rd(t);](t);v=u;rep(i,N){U;E;}}else{v=u;REP(i,N-1){U;v.erase(Q[i]=R[N-i-1-bsearch_min[ll,k,0,N-i-1][Q[i]=R[N-i-1-k];j=i+1;REP(l,N-i)if(R[l]!=Q[i])Q[j++]=R[l];wt("?",Q);rd(t);](t)]);}Q[N-1]=*v.begin();}wt("!",Q);