#include <iostream>
#include <vector>
#include <cstring>
#define int long long
using namespace std;
const int N = 1e5 + 10;
string s;
int let[128],p[N],x[N],y[N];
bool b[N];
vector <int> v[N];
signed main(){
int c; cin >> c;
int T;cin >> T;
while(T --){
memset(let,0,sizeof(let));
memset(b,0,sizeof(b));
memset(p,0,sizeof(p));
memset(x,0,sizeof(x));
memset(y,0,sizeof(y));
for(int i = 1;i <= 1e5;i ++) v[i].clear();
int n;cin >> n >> s;
s = ' ' + s;
int pos = 0;
for(int i = 1;i <= n;i ++){
let[s[i]] ++;
v[s[i]].push_back(i);
}
for(int i = 'a';i <= 'z';i ++){
if(let[i] > let[pos]) pos = i;
}
if(let[pos] > n / 2){
if(let[pos] == n) {cout << "Shuiniao\n";continue;}
if((n & 1) && let[pos] == n - 1 && s[(n + 1)/2] != pos){
cout << "Shuiniao\n";continue;
}
int sum = n - let[pos],tot = 0,tag = 0,tmp = 0;
int sp = n - 2 * (sum - 1);
for(int i = 1;i <= n;i ++){
if((int)s[i] == pos && tot < sp / 2 - 1 && tmp == 0){
p[++tot] = i,b[i] = 1;
}else if((int)s[i] == pos && tot < sp && tmp == 1){
p[++tot] = i,b[i] = 1;
}else if((int)s[i] != pos && !tmp)p[++tot] = i,tmp = 1,b[i] = 1;
}
if(tot < sp){
tot = 0;tmp = 0;
memset(b,0,sizeof(b));
for(int i = 1;i <= n;i ++){
if((int)s[i] == pos && tmp == 0){
p[++tot] = i,b[i] = 1;
}else if((int)s[i] == pos && tot < sp && tmp == 1){
p[++tot] = i,b[i] = 1;
}else if((int)s[i] != pos &&!tmp)p[++tot] = i,tmp = 1,b[i]=1;
}
}
cout << "Huoyu\n" << sum << '\n' << tot << ' ';
for(int i = 1;i <= tot;i ++) cout << p[i] << ' ';
cout << '\n';
int sa = 0,sb = 0;
for(int i = 1;i <= n;i ++){
if(b[i]) continue;
if((int)s[i] == pos) x[++sa] = i;
else y[++sb] = i;
}
for(int i = 1;i <= sa;i ++){
cout << 2 << ' ';
if(x[i] > y[i]) swap(x[i],y[i]);
cout << x[i] << ' ' << y[i] << '\n';
}
}else{
int tot = 0;
for(int i = 'a';i <= 'z';i ++){
for(int t : v[i]){
if(tot < n / 2) x[++tot] = t;
else y[(++tot) - n / 2] = t;
}
}
cout << "Huoyu\n" << n / 2 << '\n';
for(int i = 1;i <= n / 2 - 1;i ++){
if(x[i] > y[i]) swap(x[i],y[i]);
cout << 2 << ' ' << x[i] << ' ' << y[i] << '\n';
}
if(n & 1){
if(x[n/2] > y[n/2]) swap(x[n/2],y[n/2]);
if(y[n/2] > y[n/2 + 1]) swap(y[n/2],y[n/2 + 1]);
if(x[n/2] > y[n/2]) swap(x[n/2],y[n/2]);
cout << 3 << ' ' << x[n/2] << ' ' << y[n/2] << ' ' << y[n/2+1] << '\n';
}else{
if(x[n/2] > y[n/2]) swap(x[n/2],y[n/2]);
cout << 2 << ' ' << x[n/2] << ' ' << y[n/2] << '\n';
}
}
}
return 0;
}