# include <fstream>
# include <algorithm>
# include <cstring>
# include <vector>
# define dim 1000005
using namespace std;
ifstream f("prefix.in");
ofstream g("prefix.out");
char a[ dim ];
int p[ dim ];
int t, lg_a;
void rezolva()
{
int i, sol = 0;
for ( i = lg_a ; i >= 2 ; i-- )
{
if ( i % ( i - p[ i ] ) == 0 && p[ i ] != 0 )
sol = max( sol, i );
p[ i ] = 0;
}
p[ 1 ] = 0;
g << sol << "\n";
}
void prefix()
{
int i, q = 0;
p[ 1 ] = 0;
for ( i = 2 ; i <= lg_a ; i++ )
{
while ( q > 0 && a[ q + 1 ] != a[ i ] )
q = p[ q ];
if ( a[ q + 1 ] == a[ i ] )
q++;
p[ i ] = q;
}
// for ( i = 1 ; i <= lg_a ; i++ )
// g << p[ i ];
// g << "\n";
}
void citire()
{
int i, j;
f >> t;
f.get();
for ( i = 1 ; i <= t ; i++ )
{
f.getline( a, sizeof( a ) );
lg_a = strlen( a );
for ( j = lg_a ; j >= 1 ; j-- )
a[ j ] = a[ j - 1 ];
a[ 0 ] = ' ';
//g << a << "\n";
prefix();
rezolva();
}
}
int main()
{
citire();
return 0;
}