#include<bits/stdc++.h>
using namespace std;
int T;
struct A {
int a,b,far;
};
int n,q,sum,k;
A sx[10000];
bool ax[10001];
void dfs(int now,int ans) {
if(k==1||ax[now]==true) {
return;
}
if(sum==0) {
if(ans>sum) {
sum=ans;
}
k=1;
return;
}
ax[now]=true;
for(int i=1; i<n; i++) {
if(sx[i].a==now) {
dfs(sx[i].b,ans+sx[i].far);
}
if(sx[i].b==now) {
dfs(sx[i].a,ans+sx[i].far);
}
}
ax[now]=false;
}
int main() {
cin>>T;
while(T>0) {
T--;
k=0;
n=0,q=0;
memset(sx,0,sizeof(sx));
cin>>n;
for(int i=1; i<n; i++) {
cin>>sx[i].a>>sx[i].b>>sx[i].far;
}
cin>>q;
for(int i=1; i<=q; i++) {
int kkksc03;
memset(ax,false,sizeof(ax));
sum=0;
cin>>kkksc03;
dfs(kkksc03,0);
cout<<sum;
}
}
return 0;
}