#include <iostream>
using namespace std;
#include<string>
#include<algorithm>
#include<vector>
int main(){
int t;
cin>>t;
while(t--){

int op;
cin>>op;
int n;
cin>>n;
string s;
cin>>s;
s=' '+s;
string ss;
ss=' '+ss;
for(int i=1;i<=2*n+1;i++){
if(i%2==1){
    ss+='*';
}
else{
    ss+=s[i/2];
}

}
vector<int>v(2*n+3);
int ma=-1;
for(int i=1,r=1,c=1,len;i<=2*n+1;i++){
len=i<r?min(r-i,v[2*c-i]):1;
while(i-len>=1&&i+len<=2*n+1&&ss[i-len]==ss[i+len]){
    len++;
}

if(i+len>r){
    r=i+len;
    c=i;
}
v[i]=len-1;
ma=max(ma,v[i]);

}
if(op==1){
for(int i=1;i<=2*n+1;i++){
if(i%2==0){
    cout<<v[i]<<' ';
}


}
cout<<endl;

}
if(op==2){
for(int i=2;i<2*n+1;i++){
    if(i%2==1){
        cout<<v[i]<<' ';
    }
}
cout<<endl;

}

if(op==3){
long long sum=0;
for(int i=1;i<=2*n+1;i++){
    sum+=(v[i]+1)/2;
}

cout<<sum<<endl;


}

if(op==4){
int sum=0;
for(int i=1;i<=2*n+1;i++){

    if(v[i]==ma){
        sum++;
    }

}
cout<<sum<<endl;


}

}




    return 0;
}