#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<algorithm>
using namespace std;
int n;
int a[40010];
int d[40010];
int b[40010];
int dmax;
int main()
{
int total;
scanf("%d",&total);
int i;
while(total--)
{
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
d[i]=1;
}
b[1]=a[1];
dmax=1;
int L,R;
for(i=2;i<=n;i++)
{
//对a[i],d[i]进行处理
L=1;
R=dmax;
if(a[i]>b[dmax])
{
dmax++;
b[dmax]=a[i];
d[i]=dmax;
continue;
}
if(a[i]<=b[1])
{
d[i]=1;
b[1]=a[i];
continue;
}
while(1)
{
if(L+1==R&&a[i]>b[L]&&a[i]<=b[R])
{
d[i]=R;
if(a[i]<b[R])
{
b[R]=a[i];
}
break;
}
int mid=(L+R)/2;
if(b[mid]<a[i])
{
L=mid;
}
if(b[mid]>=a[i])
{
R=mid;
}
}
}
printf("%d\n",dmax);
}
return 0;
}