/*
Author : r20rock
Algo:
Note:
*/
#include<iostream>
#include <sstream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<stack>
#include<map>
#include<list>
#include<cmath>
#include<cstdlib>
#include<climits>
#include<iomanip>
using namespace std;
#define PI 3.1428571
#define UL unsigned long int
#define ULL unsigned long long int
#define GETI(k) scanf("%d",&k)
#define GETUL(k) scanf("%lu",&k)
#define GETULL(k) scanf("%llu",&k)
#define GETF(k) scanf("%f",&k)
#define GETC(k) scanf("%c",&k)
#define GETCP(k) scanf("%s",&k) //char pointer
#define GETS(k) scanf("%s",k) //string
#define PUTI(k) printf("%d",k)
#define PUTUL(k) printf("%lu",k)
#define PUTULL(k) printf("%llu",k)
#define PUTF(k) printf("%f",k)
#define PUTC(k) printf("%c",k)
#define PUTS(k) printf("%s",k)
#define PUTK(k) printf(k) //hard coded string
#define NL printf("\n")
#define INF 1000000007
#define MOD 1000000007
int main()
{
int tc;
GETI(tc);
while(tc--)
{
char s[10010];
GETS(s);
vector <int> v;
int a[26]= {0},ans=0;
for(int i=0; i<strlen(s); i++)
{
if(s[i]=='#')
{
v.push_back(*max_element(a,a+26));
memset(a,0,26*4);
}
else
a[s[i]-'a']++;
}
v.push_back(*max_element(a,a+26));
if(v.size()>=4)
for(int i=0; i<v.size()-3; i++)
if(v[i]!=0 && v[i+1]!=0 && v[i+2]!=0 && v[i+3]!=0)
if((v[i]+v[i+1]+v[i+2]+v[i+3])>ans)
ans=v[i]+v[i+1]+v[i+2]+v[i+3];
ans = (ans!=0)?(ans+3):0;
PUTI(ans);
NL;
}
return 0;
}
LyoKQXV0aG9yIDogcjIwcm9jawpBbGdvOgpOb3RlOgoqLwojaW5jbHVkZTxpb3N0cmVhbT4KI2luY2x1ZGUgPHNzdHJlYW0+CiNpbmNsdWRlPGNzdGRpbz4KI2luY2x1ZGU8Y3N0cmluZz4KI2luY2x1ZGU8YWxnb3JpdGhtPgojaW5jbHVkZTx2ZWN0b3I+CiNpbmNsdWRlPHN0YWNrPgojaW5jbHVkZTxtYXA+CiNpbmNsdWRlPGxpc3Q+CiNpbmNsdWRlPGNtYXRoPgojaW5jbHVkZTxjc3RkbGliPgojaW5jbHVkZTxjbGltaXRzPgojaW5jbHVkZTxpb21hbmlwPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgICAgIFBJICAgICAgMy4xNDI4NTcxCiNkZWZpbmUgICAgIFVMICAgICAgdW5zaWduZWQgbG9uZyBpbnQKI2RlZmluZSAgICAgVUxMICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGludAoKI2RlZmluZSAgICAgR0VUSShrKSAgICAgIHNjYW5mKCIlZCIsJmspCiNkZWZpbmUgICAgIEdFVFVMKGspICAgIHNjYW5mKCIlbHUiLCZrKQojZGVmaW5lICAgICBHRVRVTEwoaykgICAgc2NhbmYoIiVsbHUiLCZrKQojZGVmaW5lICAgICBHRVRGKGspICAgICAgc2NhbmYoIiVmIiwmaykKI2RlZmluZSAgICAgR0VUQyhrKSAgICAgc2NhbmYoIiVjIiwmaykKI2RlZmluZSAgICAgR0VUQ1AoaykgICBzY2FuZigiJXMiLCZrKSAvL2NoYXIgcG9pbnRlcgojZGVmaW5lICAgICBHRVRTKGspICAgICBzY2FuZigiJXMiLGspICAvL3N0cmluZwoKI2RlZmluZSAgICAgUFVUSShrKSAgICAgcHJpbnRmKCIlZCIsaykKI2RlZmluZSAgICAgUFVUVUwoaykgICBwcmludGYoIiVsdSIsaykKI2RlZmluZSAgICAgUFVUVUxMKGspICAgcHJpbnRmKCIlbGx1IixrKQojZGVmaW5lICAgICBQVVRGKGspICAgICBwcmludGYoIiVmIixrKQojZGVmaW5lICAgICBQVVRDKGspICAgICBwcmludGYoIiVjIixrKQojZGVmaW5lICAgICBQVVRTKGspICAgICBwcmludGYoIiVzIixrKQojZGVmaW5lICAgICBQVVRLKGspICAgICBwcmludGYoaykgICAgICAgICAgIC8vaGFyZCBjb2RlZCBzdHJpbmcKI2RlZmluZSAgICAgTkwgICAgcHJpbnRmKCJcbiIpCiNkZWZpbmUgCUlORgkxMDAwMDAwMDA3CiNkZWZpbmUJCU1PRAkxMDAwMDAwMDA3CmludCBtYWluKCkKewogICAgaW50IHRjOwogICAgR0VUSSh0Yyk7CiAgICB3aGlsZSh0Yy0tKQogICAgewogICAgICAgIGNoYXIgc1sxMDAxMF07CiAgICAgICAgR0VUUyhzKTsKICAgICAgICB2ZWN0b3IgPGludD4gdjsKICAgICAgICBpbnQgYVsyNl09IHswfSxhbnM9MDsKICAgICAgICBmb3IoaW50IGk9MDsgaTxzdHJsZW4ocyk7IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKHNbaV09PScjJykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdi5wdXNoX2JhY2soKm1heF9lbGVtZW50KGEsYSsyNikpOwogICAgICAgICAgICAgICAgbWVtc2V0KGEsMCwyNio0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBhW3NbaV0tJ2EnXSsrOwogICAgICAgIH0KICAgICAgICB2LnB1c2hfYmFjaygqbWF4X2VsZW1lbnQoYSxhKzI2KSk7CiAgICAgICAgaWYodi5zaXplKCk+PTQpCiAgICAgICAgICAgIGZvcihpbnQgaT0wOyBpPHYuc2l6ZSgpLTM7IGkrKykKICAgICAgICAgICAgICAgIGlmKHZbaV0hPTAgJiYgdltpKzFdIT0wICYmIHZbaSsyXSE9MCAmJiB2W2krM10hPTApCiAgICAgICAgICAgICAgICAgICAgaWYoKHZbaV0rdltpKzFdK3ZbaSsyXSt2W2krM10pPmFucykKICAgICAgICAgICAgICAgICAgICAgICAgYW5zPXZbaV0rdltpKzFdK3ZbaSsyXSt2W2krM107CgogICAgICAgIGFucyA9IChhbnMhPTApPyhhbnMrMyk6MDsKICAgICAgICBQVVRJKGFucyk7CiAgICAgICAgTkw7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=