#include <bits/stdc++.h>
const int N = 200200;
using namespace std;
int n;
vector < int > v[N];
int ask(int x)
{
int y;
printf("1 %d\n", x);
fflush(stdout);
scanf("%d", &y);
return y;
}
int s[N];
bool dead[N];
void dfs(int x, int p = -1)
{
s[x] = 1;
for(int y: v[x]){
if(y == p || dead[y]){
continue;
}
dfs(y, x);
s[x] += s[y];
}
}
int get_centroid(int x, int sz, int p = -1)
{
int mx = sz - s[x];
for(int y: v[x]){
if(y == p || dead[y]) {
continue;
}
int g = get_centroid(y, sz, x);
if(g != -1){
return g;
}
mx = max(mx, s[y]);
}
if(mx <= sz / 2){
return x;
}
return -1;
}
int get(int x)
{
dfs(x);
x = get_centroid(x, s[x]);
dead[x] = true;
dfs(x);
int y = ask(x);
assert(!dead[y]);
if(y == -1){
return x;
} else{
return get(y);
}
}
void solve()
{
scanf("%d", &n);
for(int i = 1; i <= n; i++){
v[i].clear();
dead[i] = 0;
}
for(int i = 1; i < n; i++){
int x, y;
scanf("%d%d", &x, &y);
v[x].push_back(y);
v[y].push_back(x);
}
int res = get(1);
printf("2 %d\n", res);
fflush(stdout);
scanf("%d", &res);
}
int main()
{
//freopen("Btree.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
ios_base::sync_with_stdio(0);
int T;
scanf("%d", &T);
while(T--){
solve();
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgpjb25zdCBpbnQgTiA9IDIwMDIwMDsKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbjsKdmVjdG9yIDwgaW50ID4gdltOXTsKCmludCBhc2soaW50IHgpCnsKICAgICAgICBpbnQgeTsKICAgICAgICBwcmludGYoIjEgJWRcbiIsIHgpOwogICAgICAgIGZmbHVzaChzdGRvdXQpOwogICAgICAgIHNjYW5mKCIlZCIsICZ5KTsKICAgICAgICByZXR1cm4geTsKfQoKaW50IHNbTl07CmJvb2wgZGVhZFtOXTsKCnZvaWQgZGZzKGludCB4LCBpbnQgcCA9IC0xKQp7CiAgICAgICAgc1t4XSA9IDE7CiAgICAgICAgZm9yKGludCB5OiB2W3hdKXsKICAgICAgICAgICAgICAgIGlmKHkgPT0gcCB8fCBkZWFkW3ldKXsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBkZnMoeSwgeCk7CiAgICAgICAgICAgICAgICBzW3hdICs9IHNbeV07CiAgICAgICAgfQp9CgppbnQgZ2V0X2NlbnRyb2lkKGludCB4LCBpbnQgc3osIGludCBwID0gLTEpCnsKICAgICAgICBpbnQgbXggPSBzeiAtIHNbeF07CiAgICAgICAgZm9yKGludCB5OiB2W3hdKXsKICAgICAgICAgICAgICAgIGlmKHkgPT0gcCB8fCBkZWFkW3ldKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaW50IGcgPSBnZXRfY2VudHJvaWQoeSwgc3osIHgpOwogICAgICAgICAgICAgICAgaWYoZyAhPSAtMSl7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgbXggPSBtYXgobXgsIHNbeV0pOwogICAgICAgIH0KICAgICAgICBpZihteCA8PSBzeiAvIDIpewogICAgICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgfQogICAgICAgIHJldHVybiAtMTsKfQoKaW50IGdldChpbnQgeCkKewogICAgICAgIGRmcyh4KTsKICAgICAgICB4ID0gZ2V0X2NlbnRyb2lkKHgsIHNbeF0pOwogICAgICAgIGRlYWRbeF0gPSB0cnVlOwogICAgICAgIGRmcyh4KTsKCiAgICAgICAgaW50IHkgPSBhc2soeCk7CiAgICAgICAgYXNzZXJ0KCFkZWFkW3ldKTsKICAgICAgICBpZih5ID09IC0xKXsKICAgICAgICAgICAgICAgIHJldHVybiB4OwogICAgICAgIH0gZWxzZXsKICAgICAgICAgICAgICAgIHJldHVybiBnZXQoeSk7CiAgICAgICAgfQp9Cgp2b2lkIHNvbHZlKCkKewogICAgICAgIHNjYW5mKCIlZCIsICZuKTsKICAgICAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKyl7CiAgICAgICAgICAgICAgICB2W2ldLmNsZWFyKCk7CiAgICAgICAgICAgICAgICBkZWFkW2ldID0gMDsKICAgICAgICB9CiAgICAgICAgZm9yKGludCBpID0gMTsgaSA8IG47IGkrKyl7CiAgICAgICAgICAgICAgICBpbnQgeCwgeTsKICAgICAgICAgICAgICAgIHNjYW5mKCIlZCVkIiwgJngsICZ5KTsKICAgICAgICAgICAgICAgIHZbeF0ucHVzaF9iYWNrKHkpOwogICAgICAgICAgICAgICAgdlt5XS5wdXNoX2JhY2soeCk7CiAgICAgICAgfQoKICAgICAgICBpbnQgcmVzID0gZ2V0KDEpOwoKICAgICAgICBwcmludGYoIjIgJWRcbiIsIHJlcyk7CiAgICAgICAgZmZsdXNoKHN0ZG91dCk7CiAgICAgICAgc2NhbmYoIiVkIiwgJnJlcyk7Cn0KCmludCBtYWluKCkKewogICAgICAgIC8vZnJlb3BlbigiQnRyZWUudHh0IiwgInIiLCBzdGRpbik7CiAgICAgICAgLy9mcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwogICAgICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CgogICAgICAgIGludCBUOwogICAgICAgIHNjYW5mKCIlZCIsICZUKTsKICAgICAgICB3aGlsZShULS0pewogICAgICAgICAgICAgICAgc29sdmUoKTsKICAgICAgICB9Cn0=