#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int t,h[N],e[2*N],idx,nxt[N],f[N][25],deep[N],n;
void add(int a,int b){
e[idx++]=b;nxt[idx]=h[a];h[a]=idx;
}
void dfs(int u, int fa) {
f[u][0] = fa; deep[u] = deep[fa] + 1;
for(int i = 1; i <= 22; i++){
f[u][i] = f[f[u][i-1]][i-1];
}
for(int i = h[u]; i!=-1; i = nxt[i]){
int v=e[i];
if(v!=fa){
deep[v]=deep[u]+1;
dfs(v,u);
}
}
}
int lca(int x,int y){
if(deep[x]<deep[y]) swap(x,y);
for(int i=22;i>=0;i--){
if(deep[f[x][i]]>=deep[y]){
x=f[x][i];
}
}
if(x==y) return y;
for(int i=20;i>=0;i--){
if(deep[f[x][i]]!=deep[f[y][i]]){
x=f[x][i];
y=f[y][i];
}
}
return f[x][0];
}
int main(){
cin>>t;
while(t--){
idx=0;
scanf("%d",&n);
int root=n*(n+1)/2;
int x,y;
memset(f,-1,sizeof f);
memset(deep,0,sizeof deep);
memset(e,0,sizeof e);
memset(h,0,sizeof h);
memset(nxt,0,sizeof nxt);
for(int i=1;i<n;i++){
scanf("%d%d",&x,&y);
add(x,y);
root-=y;
}
scanf("%d%d",&x,&y);
dfs(1,root);
int ans=lca(x,y);
printf("%d\n",lca);
}
return 0;
}