#include <stdio.h>
#include <string.h>
#include <fstream>
FILE*f=fopen("prefix.in","r");
FILE*g=fopen("prefix.out","w");
using namespace std;
char v[2000005],a[2000005];
int t,j,sol[100004],nr,i,k,p[2000005];
int main()
{
fscanf(f,"%d\n",&t);
for(int ww=1;ww<=t;ww++){
fscanf(f,"%s",v+1);
int n=strlen(v+1);
k=0;
for(int i=2;i<=n;i++)
{
while(k&&v[k+1]!=v[i])
k=p[k];
if(v[k+1]==v[i]) k++;
p[i]=k;
}
for(j=n;j>=1;j--){
if(p[j]!=0&&j%(j-p[j])==0){fprintf(g,"%d\n",j);break;}
if(j==1) fprintf(g,"0\n");
}
}
return 0;
}