#include <iostream>
#include <string>
using namespace std;
int main()
{
string cases[8]={"TTT","TTH","THT","THH","HTT","HTH","HHT","HHH"};
int p,j,i;
cin>>p;
int sets[p];
string toss[p];
string new1;
for(i=0;i<p;i++)
{
cin>>sets[i];
cin>>toss[i];
}
for(i=0;i<p;++i)
{
int case1=0,case2=0,case3=0,case4=0,case5=0,case6=0,case7=0,case8=0;
new1=toss[i];
cout<<sets[i];
for(j=0;j<38;++j)
{
if ((new1[i] == cases[0][0] && (new1[i+1] == cases[0][1]) && (new1[i+2] == cases[0][2])))
{case1++;}
if ((new1[i] == cases[1][0] && (new1[i+1] == cases[1][1]) && (new1[i+2] == cases[1][2])))
{case2++;}
if ((new1[i] == cases[2][0] && (new1[i+1] == cases[2][1]) && (new1[i+2] == cases[2][2])))
{case3++;}
if ((new1[i] == cases[3][0] && (new1[i+1] == cases[3][1]) && (new1[i+2] == cases[3][2])))
{case4++;}
if ((new1[i] == cases[4][0] && (new1[i+1] == cases[4][1]) && (new1[i+2] == cases[4][2])))
{case5++;}
if ((new1[i] == cases[5][0] && (new1[i+1] == cases[5][1]) && (new1[i+2] == cases[5][2])))
{case6++;}
if ((new1[i] == cases[6][0] && (new1[i+1] == cases[6][1]) && (new1[i+2] == cases[6][2])))
{case7++;}
if ((new1[i] == cases[7][0] && (new1[i+1] == cases[7][1]) && (new1[i+2] == cases[7][2])))
{case8++;}
}
cout<<case1<<" "<<case2<<" "<<case3<<" "<<case4<<" "<<case5<<" "<<case6<<" "<<case7<<" "<<case8<<" ";
}
return 0;
}
ICNpbmNsdWRlIDxpb3N0cmVhbT4KICNpbmNsdWRlIDxzdHJpbmc+CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwoKICAgIGludCBtYWluKCkKICAgIHsKc3RyaW5nIGNhc2VzWzhdPXsiVFRUIiwiVFRIIiwiVEhUIiwiVEhIIiwiSFRUIiwiSFRIIiwiSEhUIiwiSEhIIn07CmludCBwLGosaTsKY2luPj5wOwppbnQgc2V0c1twXTsKc3RyaW5nIHRvc3NbcF07CnN0cmluZyBuZXcxOwpmb3IoaT0wO2k8cDtpKyspCnsKICAgIGNpbj4+c2V0c1tpXTsKICAgIGNpbj4+dG9zc1tpXTsKfQpmb3IoaT0wO2k8cDsrK2kpCnsKICAgIGludCBjYXNlMT0wLGNhc2UyPTAsY2FzZTM9MCxjYXNlND0wLGNhc2U1PTAsY2FzZTY9MCxjYXNlNz0wLGNhc2U4PTA7CiAgICBuZXcxPXRvc3NbaV07CiAgICAgICAgY291dDw8c2V0c1tpXTsKICAgICAgICBmb3Ioaj0wO2o8Mzg7KytqKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGlmICgobmV3MVtpXSA9PSBjYXNlc1swXVswXSAmJiAobmV3MVtpKzFdID09IGNhc2VzWzBdWzFdKSAmJiAobmV3MVtpKzJdID09IGNhc2VzWzBdWzJdKSkpCntjYXNlMSsrO30KICAgICAgICAgICAgICAgaWYgKChuZXcxW2ldID09IGNhc2VzWzFdWzBdICYmIChuZXcxW2krMV0gPT0gY2FzZXNbMV1bMV0pICYmIChuZXcxW2krMl0gPT0gY2FzZXNbMV1bMl0pKSkKe2Nhc2UyKys7fQogICAgICAgICAgICAgIGlmICgobmV3MVtpXSA9PSBjYXNlc1syXVswXSAmJiAobmV3MVtpKzFdID09IGNhc2VzWzJdWzFdKSAmJiAobmV3MVtpKzJdID09IGNhc2VzWzJdWzJdKSkpCntjYXNlMysrO30KICAgICAgICAgICAgICAgaWYgKChuZXcxW2ldID09IGNhc2VzWzNdWzBdICYmIChuZXcxW2krMV0gPT0gY2FzZXNbM11bMV0pICYmIChuZXcxW2krMl0gPT0gY2FzZXNbM11bMl0pKSkKe2Nhc2U0Kys7fQogICAgICAgICAgICAgICAgaWYgKChuZXcxW2ldID09IGNhc2VzWzRdWzBdICYmIChuZXcxW2krMV0gPT0gY2FzZXNbNF1bMV0pICYmIChuZXcxW2krMl0gPT0gY2FzZXNbNF1bMl0pKSkKe2Nhc2U1Kys7fQogICAgICAgICAgICAgICBpZiAoKG5ldzFbaV0gPT0gY2FzZXNbNV1bMF0gJiYgKG5ldzFbaSsxXSA9PSBjYXNlc1s1XVsxXSkgJiYgKG5ldzFbaSsyXSA9PSBjYXNlc1s1XVsyXSkpKQp7Y2FzZTYrKzt9CiAgICAgICAgICAgICBpZiAoKG5ldzFbaV0gPT0gY2FzZXNbNl1bMF0gJiYgKG5ldzFbaSsxXSA9PSBjYXNlc1s2XVsxXSkgJiYgKG5ldzFbaSsyXSA9PSBjYXNlc1s2XVsyXSkpKQp7Y2FzZTcrKzt9CiAgICAgICAgICAgICAgaWYgKChuZXcxW2ldID09IGNhc2VzWzddWzBdICYmIChuZXcxW2krMV0gPT0gY2FzZXNbN11bMV0pICYmIChuZXcxW2krMl0gPT0gY2FzZXNbN11bMl0pKSkKe2Nhc2U4Kys7fQogICAgICAgICAgICB9CmNvdXQ8PGNhc2UxPDwiICI8PGNhc2UyPDwiICI8PGNhc2UzPDwiICI8PGNhc2U0PDwiICI8PGNhc2U1PDwiICI8PGNhc2U2PDwiICI8PGNhc2U3PDwiICI8PGNhc2U4PDwiICI7Cgp9CgpyZXR1cm4gMDsKfQo=