#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <iomanip>
#include <numeric>
#include <vector>
#include <queue>
#include <stack>
#include <string>
#define hyathu main
#define popcorn __builtin_popcount
using namespace std;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
using pint = int*;
constexpr int mmb = 2e5 + 69;
const ld pi = atan(1) * 4;
int t, n, cnt;
string s[mmb];
pair <string, string> q[mmb];
vector <int> v[mmb], o[mmb];
int d[mmb], deg[mmb], ct[mmb];
void reset(){
for(int i = 1; i <= n; ++i)
v[i].clear(),
o[i].clear();
cnt = 0;
}
void readData(){
cin >> n;
for(int i = 1; i <= n; ++i){
cin >> q[i].first >> q[i].second;
s[++cnt] = q[i].first;
s[++cnt] = q[i].second;
}
sort(s + 1, s + cnt + 1);
cnt = unique(s + 1, s + cnt + 1) - s - 1;
fill(deg + 1, deg + n + 1, 0);
for(int i = 1; i <= n; ++i){
int x = lower_bound(s + 1, s + cnt + 1, q[i].first) - s;
int y = lower_bound(s + 1, s + cnt + 1, q[i].second) - s;
// cout << x << " " << y << "\n";
v[y].push_back(x);
o[x].push_back(y);
++deg[x];
}
}
void solve(){
fill(d + 1, d + cnt + 1, 0);
queue <int> qe;
for(int i = 1; i <= cnt; ++i){
if(deg[i] == 0){
d[i] = 2;
qe.push(i);
}
}
while(!qe.empty()){
int p = qe.front();
qe.pop();
for(int i : v[p]){
if(d[i] != 0)
continue;
if(d[p] == 2){
d[i] = 1;
qe.push(i);
continue;
}
++ct[i];
if(ct[i] == deg[i]){
d[i] = 2;
qe.push(i);
continue;
}
}
}
// for(int i = 1; i <= n; ++i)
// cout << d[i] << " ";
// cout << "\n";
for(int i = 1; i <= n; ++i){
if(d[i] != 1) continue;
for(int j : o[i]){
if(d[j] == 2 && deg[j] > 0){
cout << "Quang\n";
return;
}
}
}
if(count(d + 1, d + n + 1, 0) > 0){
cout << "Hoa\n";
return;
}
cout << "Hieu\n";
}
#define filename "test"
int hyathu(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
#ifdef dangheo
freopen("test.inp", "r", stdin);
//freopen("test.out", "w", stdout);
#else
//freopen(filename".INP", "r", stdin);
//freopen(filename".OUT", "w", stdout);
#endif
cin >> t;
while(t--){
reset();
readData();
solve();
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxpb21hbmlwPgojaW5jbHVkZSA8bnVtZXJpYz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHF1ZXVlPgojaW5jbHVkZSA8c3RhY2s+CiNpbmNsdWRlIDxzdHJpbmc+CgojZGVmaW5lIGh5YXRodSBtYWluCiNkZWZpbmUgcG9wY29ybiBfX2J1aWx0aW5fcG9wY291bnQKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwp1c2luZyB1bGwgPSB1bnNpZ25lZCBsb25nIGxvbmc7CnVzaW5nIGxkID0gbG9uZyBkb3VibGU7CnVzaW5nIHBpbnQgPSBpbnQqOwoKY29uc3RleHByIGludCBtbWIgPSAyZTUgKyA2OTsKY29uc3QgbGQgcGkgPSBhdGFuKDEpICogNDsKCmludCB0LCBuLCBjbnQ7CgpzdHJpbmcgc1ttbWJdOwpwYWlyIDxzdHJpbmcsIHN0cmluZz4gcVttbWJdOwoKdmVjdG9yIDxpbnQ+IHZbbW1iXSwgb1ttbWJdOwppbnQgZFttbWJdLCBkZWdbbW1iXSwgY3RbbW1iXTsKCnZvaWQgcmVzZXQoKXsKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgKytpKQogICAgICAgIHZbaV0uY2xlYXIoKSwKICAgICAgICBvW2ldLmNsZWFyKCk7CiAgICBjbnQgPSAwOwp9Cgp2b2lkIHJlYWREYXRhKCl7CiAgICBjaW4gPj4gbjsKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgKytpKXsKICAgICAgICBjaW4gPj4gcVtpXS5maXJzdCA+PiBxW2ldLnNlY29uZDsKICAgICAgICBzWysrY250XSA9IHFbaV0uZmlyc3Q7CiAgICAgICAgc1srK2NudF0gPSBxW2ldLnNlY29uZDsKICAgIH0KICAgIAogICAgc29ydChzICsgMSwgcyArIGNudCArIDEpOwogICAgY250ID0gdW5pcXVlKHMgKyAxLCBzICsgY250ICsgMSkgLSBzIC0gMTsKICAgIGZpbGwoZGVnICsgMSwgZGVnICsgbiArIDEsIDApOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBuOyArK2kpewogICAgICAgIGludCB4ID0gbG93ZXJfYm91bmQocyArIDEsIHMgKyBjbnQgKyAxLCBxW2ldLmZpcnN0KSAtIHM7CiAgICAgICAgaW50IHkgPSBsb3dlcl9ib3VuZChzICsgMSwgcyArIGNudCArIDEsIHFbaV0uc2Vjb25kKSAtIHM7Ci8vICAgICAgICBjb3V0IDw8IHggPDwgIiAiIDw8IHkgPDwgIlxuIjsKICAgICAgICB2W3ldLnB1c2hfYmFjayh4KTsKICAgICAgICBvW3hdLnB1c2hfYmFjayh5KTsKICAgICAgICArK2RlZ1t4XTsKICAgIH0KfQoKdm9pZCBzb2x2ZSgpewogICAgZmlsbChkICsgMSwgZCArIGNudCArIDEsIDApOwogICAgCiAgICBxdWV1ZSA8aW50PiBxZTsKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gY250OyArK2kpewogICAgICAgIGlmKGRlZ1tpXSA9PSAwKXsKICAgICAgICAgICAgZFtpXSA9IDI7CiAgICAgICAgICAgIHFlLnB1c2goaSk7CiAgICAgICAgfQogICAgfQogICAgCiAgICB3aGlsZSghcWUuZW1wdHkoKSl7CiAgICAgICAgaW50IHAgPSBxZS5mcm9udCgpOwogICAgICAgIHFlLnBvcCgpOwogICAgICAgIAogICAgICAgIGZvcihpbnQgaSA6IHZbcF0pewogICAgICAgICAgICBpZihkW2ldICE9IDApCiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmKGRbcF0gPT0gMil7CiAgICAgICAgICAgICAgICBkW2ldID0gMTsKICAgICAgICAgICAgICAgIHFlLnB1c2goaSk7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgKytjdFtpXTsKICAgICAgICAgICAgaWYoY3RbaV0gPT0gZGVnW2ldKXsKICAgICAgICAgICAgICAgIGRbaV0gPSAyOwogICAgICAgICAgICAgICAgcWUucHVzaChpKTsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgCi8vICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgKytpKQovLyAgICAgICAgY291dCA8PCBkW2ldIDw8ICIgIjsKLy8gICAgY291dCA8PCAiXG4iOwogICAgCiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47ICsraSl7CiAgICAgICAgaWYoZFtpXSAhPSAxKSBjb250aW51ZTsKICAgICAgICBmb3IoaW50IGogOiBvW2ldKXsKICAgICAgICAgICAgaWYoZFtqXSA9PSAyICYmIGRlZ1tqXSA+IDApewogICAgICAgICAgICAgICAgY291dCA8PCAiUXVhbmdcbiI7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICAKICAgIGlmKGNvdW50KGQgKyAxLCBkICsgbiArIDEsIDApID4gMCl7CiAgICAgICAgY291dCA8PCAiSG9hXG4iOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIAogICAgY291dCA8PCAiSGlldVxuIjsKfQoKI2RlZmluZSBmaWxlbmFtZSAidGVzdCIKCmludCBoeWF0aHUoKXsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKICAgIGNvdXQudGllKE5VTEwpOwoKICAgICNpZmRlZiBkYW5naGVvCiAgICBmcmVvcGVuKCJ0ZXN0LmlucCIsICJyIiwgc3RkaW4pOwogICAgLy9mcmVvcGVuKCJ0ZXN0Lm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgICNlbHNlCiAgICAvL2ZyZW9wZW4oZmlsZW5hbWUiLklOUCIsICJyIiwgc3RkaW4pOwogICAgLy9mcmVvcGVuKGZpbGVuYW1lIi5PVVQiLCAidyIsIHN0ZG91dCk7CiAgICAjZW5kaWYKICAgIGNpbiA+PiB0OwogICAgd2hpbGUodC0tKXsKICAgICAgICByZXNldCgpOwogICAgICAgIHJlYWREYXRhKCk7CiAgICAgICAgc29sdmUoKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=