//用next[len] 可找到EAEBE的前后缀即E,然后再中间找符合EAEBE的前后缀(前后缀可根据中间查找情况进行缩略即继续查找E的前后缀),需要和已定前后缀间隔一倍E的距离,以防出现EEBE或EAEE的情况
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
const int N=1000000+5;
using namespace std;
int Next[N];
string str;
void getNext(string s,int m)//递推next数组
{
int i=0,j=-1;
memset(Next,0,sizeof(Next));
Next[0]=-1;;
while(i<m){
if(j==-1 || s[i]==s[j])
Next[++i]=++j;
else{
j = Next[j];
}
}
}
int main()
{
int t;
scanf("%d",&t);
while(t--){
cin >> str;
int len= str.length();
getNext(str, len);
int ans=0;
for(int i=Next[len]; i; i=Next[i]){
for(int j=i<<1; j<len-i<<1; j++)//防止重合如EAEE EEBE
if(Next[j]==i){
ans=i;
break;
}
if(ans)
break;
}
printf("%d\n", ans);
}
return 0;
}