#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int M = 1e9+7;
const int N = 1e5+10;
const long long int inf = 1e18+10;
int main(){
int t;
cin>>t;
for(int i=1;i<=t;i++){
int n,q;
cin>>n>>q;
vector<int> adj[n+10];
vector<int> lvl(n+1,0);
vector<int> vis(n+10,0);
for(int i=1;i<n;i++){
int a,b;
cin>>a>>b;
adj[a].push_back(b);
adj[b].push_back(a);
}
queue<int> qu;
qu.push(1);
vis[1]=1;
while(!qu.empty()){
int u = qu.front(); qu.pop();
for(int v:adj[u]){
if(vis[v]) continue;
vis[v]=1;
qu.push(v);
lvl[v]=lvl[u]+1;
}
}
sort(lvl.begin(),lvl.end());
while(q--){
int num; cin>>num;
cout<<upper_bound(lvl.begin(),lvl.end(),num)-lvl.begin()-1<<endl;
}
}
return 0;
}