#include<iostream>
#include<stdio.h>
using namespace std;
int wstr(char *s,int len)
{
int p[26]={0},q[26]={0},r[26]={0},t[26]={0},*a,*b,*c,*d,*temp;
int max1=0,max2=0,max3=0,max4=0,i=0,j,totmax=0;
a=p,b=q,c=r,d=t;
for(;i<len && s[i]!='#';i++)
{
a[s[i]-97]++;
if(max1<a[s[i]-97])
max1=a[s[i]-97];
}
if(s[i]=='#')
i++;
for(;i<len && s[i]!='#';i++)
{
b[s[i]-97]++;
if(max2<b[s[i]-97])
max2=b[s[i]-97];
}
if(s[i]=='#')
i++;
for(;i<len && s[i]!='#';i++)
{
c[s[i]-97]++;
if(max3<c[s[i]-97])
max3=c[s[i]-97];
}
if(s[i]=='#')
i++;
while(i<len)
{
while(i<len && s[i]!='#')
{
d[s[i]-97]++;
if(max4<d[s[i]-97])
max4=d[s[i]-97];
i++;
}
if(totmax<(max1+max2+max3+max4) && max1 && max2 && max3 && max4)
totmax=max1+max2+max3+max4;
max1=max2;
max2=max3;
max3=max4;
max4=0;
temp=a;
a=b;
b=c;
c=d;
d=temp;
for(int j=0;j<26;j++)
d[j]=0;
if(s[i]=='#')
i++;
}
if(totmax)
return (totmax+3);
return 0;
}
int main()
{
int t,i=0,len;
cin>>t;
int res[t];
char *s,ch;
while(i<t)
{
len=0;
s=new char[10000];
while((ch=getchar()))
{
if(ch==' ' || ch=='\n')
break;
s[len++]=ch;
}
s[len]=0;
if(!len)
continue;
res[i]=wstr(s,len);
delete []s;
i++;
}
for(i=0;i<t;cout<<res[i]<<endl,i++);
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0ZGlvLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCB3c3RyKGNoYXIgKnMsaW50IGxlbikKewogICAgaW50IHBbMjZdPXswfSxxWzI2XT17MH0sclsyNl09ezB9LHRbMjZdPXswfSwqYSwqYiwqYywqZCwqdGVtcDsKICAgIGludCBtYXgxPTAsbWF4Mj0wLG1heDM9MCxtYXg0PTAsaT0wLGosdG90bWF4PTA7CiAgICBhPXAsYj1xLGM9cixkPXQ7CiAgICBmb3IoO2k8bGVuICYmIHNbaV0hPScjJztpKyspCiAgICAgICAgewogICAgICAgICAgICBhW3NbaV0tOTddKys7CiAgICAgICAgICAgIGlmKG1heDE8YVtzW2ldLTk3XSkKICAgICAgICAgICAgbWF4MT1hW3NbaV0tOTddOwogICAgICAgIH0KICAgIGlmKHNbaV09PScjJykKICAgIGkrKzsKICAgIGZvcig7aTxsZW4gJiYgc1tpXSE9JyMnO2krKykKICAgICAgICB7CiAgICAgICAgICAgIGJbc1tpXS05N10rKzsKICAgICAgICAgICAgaWYobWF4MjxiW3NbaV0tOTddKQogICAgICAgICAgICBtYXgyPWJbc1tpXS05N107CiAgICAgICAgfQogICAgaWYoc1tpXT09JyMnKQogICAgaSsrOwogICAgZm9yKDtpPGxlbiAmJiBzW2ldIT0nIyc7aSsrKQogICAgICAgIHsKICAgICAgICAgICAgY1tzW2ldLTk3XSsrOwogICAgICAgICAgICBpZihtYXgzPGNbc1tpXS05N10pCiAgICAgICAgICAgIG1heDM9Y1tzW2ldLTk3XTsKICAgICAgICB9CiAgICBpZihzW2ldPT0nIycpCiAgICBpKys7CiAgICB3aGlsZShpPGxlbikKICAgIHsKICAgICAgICB3aGlsZShpPGxlbiAmJiBzW2ldIT0nIycpCiAgICAgICAgewogICAgICAgICAgICBkW3NbaV0tOTddKys7CiAgICAgICAgICAgIGlmKG1heDQ8ZFtzW2ldLTk3XSkKICAgICAgICAgICAgbWF4ND1kW3NbaV0tOTddOwogICAgICAgICAgICBpKys7CiAgICAgICAgfQogICAgICAgIGlmKHRvdG1heDwobWF4MSttYXgyK21heDMrbWF4NCkgJiYgbWF4MSAmJiBtYXgyICYmIG1heDMgJiYgbWF4NCkKICAgICAgICAgICAgdG90bWF4PW1heDErbWF4MittYXgzK21heDQ7CiAgICAgICAgbWF4MT1tYXgyOwogICAgICAgIG1heDI9bWF4MzsKICAgICAgICBtYXgzPW1heDQ7CiAgICAgICAgbWF4ND0wOwogICAgICAgIHRlbXA9YTsKICAgICAgICBhPWI7CiAgICAgICAgYj1jOwogICAgICAgIGM9ZDsKICAgICAgICBkPXRlbXA7CiAgICAgICAgZm9yKGludCBqPTA7ajwyNjtqKyspCiAgICAgICAgZFtqXT0wOwogICAgICAgIGlmKHNbaV09PScjJykKICAgICAgICBpKys7CiAgICB9CiAgICBpZih0b3RtYXgpCiAgICByZXR1cm4gKHRvdG1heCszKTsKICAgIHJldHVybiAwOwp9CmludCBtYWluKCkKewogICAgaW50IHQsaT0wLGxlbjsKICAgIGNpbj4+dDsKICAgIGludCByZXNbdF07CiAgICBjaGFyICpzLGNoOwogICAgd2hpbGUoaTx0KQogICAgewogICAgICAgIGxlbj0wOwogICAgICAgIHM9bmV3IGNoYXJbMTAwMDBdOwogICAgICAgIHdoaWxlKChjaD1nZXRjaGFyKCkpKQogICAgICAgIHsKICAgICAgICAgICAgaWYoY2g9PScgJyB8fCBjaD09J1xuJykKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIHNbbGVuKytdPWNoOwogICAgICAgIH0KICAgICAgICBzW2xlbl09MDsKICAgICAgICBpZighbGVuKQogICAgICAgIGNvbnRpbnVlOwogICAgICAgIHJlc1tpXT13c3RyKHMsbGVuKTsKICAgICAgICBkZWxldGUgW11zOwogICAgICAgIGkrKzsKICAgIH0KICAgIGZvcihpPTA7aTx0O2NvdXQ8PHJlc1tpXTw8ZW5kbCxpKyspOwogICAgcmV0dXJuIDA7Cn0=