#include<bits/stdc++.h>
using namespace std;
const int N=5e6+6;
char c[N<<1],s[N];
int n,r,mid,siz,len[N<<1],ans;
void init(){
siz=ans=0;
// r=mid=0;
c[siz++]='{';
int si=strlen(s+1);
for(int i=1;i<=si;i++){
c[siz++]=',';
c[siz++]=s[i];
}
c[siz++]=',';
c[siz]='}';
}
int work(){
for(int i=1;i<=siz;i++){
if(i<r) len[i]=min(r-i,len[mid*2-i]);
while(c[i-len[i]]==c[i+len[i]]){
len[i]++;
}
if(i+len[i]>r){
r=i+len[i];
mid=i;
}
ans=max(ans,len[i]);
}
return ans-1;
}
int main(){
scanf("%d",&n);
while(n--){
scanf("%s",s+1);
init();
printf("%lld\n",work());
}
}
注释那行加了50WA,不加70TLE