// 再一次复习 最长单调递增子序列dp求法
// 以前有过一次专门的总结,现在有点忘了,拿出来看看
// 目前为止,我做过的这类题目就1.最长子序列和 2.字母和数字单调最长序列。。。后面继续总结
#include <iostream>
#include <string.h>
#include <algorithm>
#include <stdio.h>
using namespace std;
int main()
{
char a[100010];
int i,j,n,str;
int dp[100010];
cin>>n;
while(n--)
{
cin>>a;
str=strlen(a);
//for(i=0; i<100010; i++) //这里可以不写
// dp[i]=1;
for(i=0;i<str;i++)
{
dp[i]=1;
for(j=0;j<i;j++)
if(a[i]>a[j])
dp[i]=max(dp[i],dp[j]+1);
}
int Max=1;
for(i=0; i<str; i++) if(Max<dp[i]) Max=dp[i];//han
printf("%d\n",Max);
}
return 0;
}