#include #include #include #include #define rep(i,s,t) for(int i=s;i<=t;i++) #define dwn(i,s,t) for(int i=s;i>=t;i--) using namespace std; inline int read() { int x=0,f=1;char c=getchar(); for(;!isdigit(c);c=getchar()) if(c=='-') f=-1; for(;isdigit(c);c=getchar()) x=x*10+c-'0'; return x*f; } typedef long long ll; const int maxn=100010; const int inf=2e9; int n,A[maxn],g[maxn]; void solve() { n=read();int k=0; rep(i,1,n) A[i]=read(),g[i]=inf; rep(i,1,n) { int p=lower_bound(g+1,g+n+1,A[i])-g; g[p]=A[i]; printf("%d%c",p,i==n?'\n':' '); } } int main() { dwn(T,read(),1) solve(); return 0; }