#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; void fre() { freopen("c://test//input.in", "r", stdin); freopen("c://test//output.out", "w", stdout); } #define MS(x,y) memset(x,y,sizeof(x)) #define MC(x,y) memcpy(x,y,sizeof(x)) #define MP(x,y) make_pair(x,y) #define ls o<<1 #define rs o<<1|1 typedef long long LL; typedef unsigned long long UL; typedef unsigned int UI; template inline void gmax(T1 &a, T2 b) { if (b>a)a = b; } template inline void gmin(T1 &a, T2 b) { if (binline void gadd(T1 &a, T2 b) { a+=b; a%=Z; } int casenum, casei; int n,m; int t[N],a[N]; void solve() { int sz = 0; scanf("%d",&n); for(int i = 1; i <= n; ++i) scanf("%d",&a[i]); t[sz++] = a[1]; printf("%d",1); for(int i = 2; i <= n; ++i) { m = lower_bound(t,t+sz,a[i]) - t; printf(" %d",m+1); if(m >= sz) sz++; t[m] = a[i]; } puts(""); } int main() { int T; scanf("%d",&T); while(T--)solve(); }