#include <bits/stdc++.h>
using namespace std;
#define int int64_t
#define endl '\n'
#define vi vector<int>
#define vvi vector<vi>
#define each(a) for(auto& e: a)
#define rep(n, i) for(int i = 0; i < n; i++)
void solve() {
int n;
cin >> n;
vvi G(n), dp(n, vi(20));
rep(n - 1, _) {
int u, v;
cin >> u >> v;
u--; v--;
G[u].push_back(v);
G[v].push_back(u);
}
vi tin(n), tout(n);
int t = 0;
function<void(int, int)> dfs = [&](int i, int p) {
if(p != -1) {
dp[i][0] = p;
for(int j = 1; j < 20; j++) {
dp[i][j] = dp[dp[i][j - 1]][j - 1];
}
}
tin[i] = t++;
each(G[i]) {
if(e != p) dfs(e, i);
}
tout[i] = t++;
};
dfs(0, -1);
auto is_ancestor = [&](int u, int v) {
return tin[u] <= tin[v] && tout[u] >= tout[v];
};
auto lca = [&](int u, int v) {
if(is_ancestor(u, v)) return u;
if(is_ancestor(v, u)) return v;
for(int j = 19; j >= 0; j--) {
if(!is_ancestor(dp[u][j], v)) u = dp[u][j];
}
return dp[u][0];
};
auto get_descendant = [&](int u, int v) {
if(is_ancestor(u, v)) return v;
return u;
};
int q;
cin >> q;
while(q--) {
int u, v, w;
cin >> u >> v >> w;
u--; v--; w--;
int ans = lca(u, v);
ans = get_descendant(ans, lca(u, w));
ans = get_descendant(ans, lca(v, w));
cout << ans + 1 << endl;
}
}
int32_t main() {
int t = 1;
cin >> t;
while(t--) {
solve();
cout << endl;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGludCBpbnQ2NF90CiNkZWZpbmUgZW5kbCAnXG4nCiNkZWZpbmUgdmkgdmVjdG9yPGludD4KI2RlZmluZSB2dmkgdmVjdG9yPHZpPgojZGVmaW5lIGVhY2goYSkgZm9yKGF1dG8mIGU6IGEpCiNkZWZpbmUgcmVwKG4sIGkpIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCgp2b2lkIHNvbHZlKCkgewoJaW50IG47CgljaW4gPj4gbjsKCXZ2aSBHKG4pLCBkcChuLCB2aSgyMCkpOwoJcmVwKG4gLSAxLCBfKSB7CgkJaW50IHUsIHY7CgkJY2luID4+IHUgPj4gdjsKCQl1LS07IHYtLTsKCQlHW3VdLnB1c2hfYmFjayh2KTsKCQlHW3ZdLnB1c2hfYmFjayh1KTsKCX0KCXZpIHRpbihuKSwgdG91dChuKTsKCWludCB0ID0gMDsKCWZ1bmN0aW9uPHZvaWQoaW50LCBpbnQpPiBkZnMgPSBbJl0oaW50IGksIGludCBwKSB7CgkJaWYocCAhPSAtMSkgewoJCQlkcFtpXVswXSA9IHA7CgkJCWZvcihpbnQgaiA9IDE7IGogPCAyMDsgaisrKSB7CgkJCQlkcFtpXVtqXSA9IGRwW2RwW2ldW2ogLSAxXV1baiAtIDFdOwoJCQl9CgkJfQoJCXRpbltpXSA9IHQrKzsKCQllYWNoKEdbaV0pIHsKCQkJaWYoZSAhPSBwKSBkZnMoZSwgaSk7CgkJfQoJCXRvdXRbaV0gPSB0Kys7Cgl9OwoJZGZzKDAsIC0xKTsKCWF1dG8gaXNfYW5jZXN0b3IgPSBbJl0oaW50IHUsIGludCB2KSB7CgkJcmV0dXJuIHRpblt1XSA8PSB0aW5bdl0gJiYgdG91dFt1XSA+PSB0b3V0W3ZdOwoJfTsKCWF1dG8gbGNhID0gWyZdKGludCB1LCBpbnQgdikgewoJCWlmKGlzX2FuY2VzdG9yKHUsIHYpKSByZXR1cm4gdTsKCQlpZihpc19hbmNlc3Rvcih2LCB1KSkgcmV0dXJuIHY7CgkJZm9yKGludCBqID0gMTk7IGogPj0gMDsgai0tKSB7CgkJCWlmKCFpc19hbmNlc3RvcihkcFt1XVtqXSwgdikpIHUgPSBkcFt1XVtqXTsKCQl9CgkJcmV0dXJuIGRwW3VdWzBdOwoJfTsKCWF1dG8gZ2V0X2Rlc2NlbmRhbnQgPSBbJl0oaW50IHUsIGludCB2KSB7CgkJaWYoaXNfYW5jZXN0b3IodSwgdikpIHJldHVybiB2OwoJCXJldHVybiB1OwoJfTsKCWludCBxOwoJY2luID4+IHE7Cgl3aGlsZShxLS0pIHsKCQlpbnQgdSwgdiwgdzsKCQljaW4gPj4gdSA+PiB2ID4+IHc7CgkJdS0tOyB2LS07IHctLTsKCQlpbnQgYW5zID0gbGNhKHUsIHYpOwoJCWFucyA9IGdldF9kZXNjZW5kYW50KGFucywgbGNhKHUsIHcpKTsKCQlhbnMgPSBnZXRfZGVzY2VuZGFudChhbnMsIGxjYSh2LCB3KSk7CgkJY291dCA8PCBhbnMgKyAxIDw8IGVuZGw7Cgl9Cn0KCmludDMyX3QgbWFpbigpIHsKCWludCB0ID0gMTsKCWNpbiA+PiB0OwoJd2hpbGUodC0tKSB7CgkJc29sdmUoKTsKCQljb3V0IDw8IGVuZGw7Cgl9Cn0=