#include<bits/stdc++.h>
#define int long long
using namespace std;
int preh1[1000007];
int preh2[1000007];
int preh3[1000007];
int sufh1[1000007];
int sufh2[1000007];
int sufh3[1000007];
int bs1[1000007];
int bs2[1000007];
int bs3[1000007];
const int base1=31;
const int mod1=1e9+7;
const int base2=29;
const int mod2=1e9+9;
const int base3=37;
const int mod3=998244353;
int t;
signed main(){
cin>>t;
while(t--){
string s;
cin>>s;
int l=s.length();
memset(preh1,0,sizeof(preh1));
memset(preh2,0,sizeof(preh2));
memset(preh3,0,sizeof(preh3));
memset(sufh1,0,sizeof(sufh1));
memset(sufh2,0,sizeof(sufh2));
memset(sufh3,0,sizeof(sufh3));
bs1[0]=1;
bs2[0]=1;
bs3[0]=1;
for(int i=1;i<=l;i++){
preh1[i]=(preh1[i-1]*base1+s[i-1])%mod1;
bs1[i]=bs1[i-1]*base1%mod1;
preh2[i]=(preh2[i-1]*base2+s[i-1])%mod2;
bs2[i]=bs2[i-1]*base2%mod2;
preh3[i]=(preh3[i-1]*base3+s[i-1])%mod3;
bs3[i]=bs3[i-1]*base3%mod3;
}
for(int i=l;i>=1;i--){
sufh1[i]=(sufh1[i+1]*base1+s[i-1])%mod1;
sufh2[i]=(sufh2[i+1]*base2+s[i-1])%mod2;
sufh3[i]=(sufh3[i+1]*base3+s[i-1])%mod3;
}
for(int i=2;i<=l;i++){
bool f=true;
int p=i;
while(p<=(l+1)/2){
bool flg1=preh1[p]!=((sufh1[p]-sufh1[2*p]*bs1[p])%mod1+mod1)%mod1;
bool flg2=preh2[p]!=((sufh2[p]-sufh2[2*p]*bs2[p])%mod2+mod2)%mod2;
bool flg3=preh3[p]!=((sufh3[p]-sufh3[2*p]*bs3[p])%mod3+mod3)%mod3;
if(flg1||flg2||flg3){
f=false;
break;
}
p=2*p-1;
}
bool flg1=sufh1[p]!=((preh1[p]-bs1[l-p+1]*preh1[2*p-l-1])%mod1+mod1)%mod1;
bool flg2=sufh2[p]!=((preh2[p]-bs2[l-p+1]*preh2[2*p-l-1])%mod2+mod2)%mod2;
bool flg3=sufh3[p]!=((preh3[p]-bs3[l-p+1]*preh3[2*p-l-1])%mod3+mod3)%mod3;
if(flg1||flg2||flg3){
f=false;
}
if(f)cout<<i<<" ";
}
cout<<endl;
}
}