#include<bits/stdc++.h>
using namespace std;
#define fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define dbg(a,b,c,d) cerr<<a<<" "<<b<<" "<<c<<" "<<d<<endl;
#define kill(a) {cout<<a<<endl;continue;}
#define KILL(a) {cout<<a<<endl;return 0;}
#define debug cerr<<"Error Found"<<endl;
#define mem(a,b) memset(a,b,sizeof(a))
#define lcm(a, b) (a/__gcd(a,b))*b
#define w(t) cin>>t;while(t--)
#define pi 2 * acos(0.0)
#define endl "\n"
int t, cs = 0;
const int mxn = 1e5 + 3, mod = 1e9 + 7;
vector<int>adj[mxn];
int64_t cost[mxn];
void dfs(int n, int par, int dis)
{
cost[dis]++;
for(auto i:adj[n])if(i != par)dfs(i, n, dis + 1);
}
int32_t main()
{
w(t)
{
int n, q;
cin >> n>> q;
for(int i = 0; i <= n; i++)adj[i].clear(), cost[i] = 0;
for(int i = 1, a, b; i < n; i++)cin >> a >> b, adj[a].push_back(b), adj[b].push_back(a);
dfs(1, -1, 0);
for(int i = 1; i <= n; i++)cost[i] += cost[i - 1];
while(q--)
{
int x;
cin >> x;
cout << cost[x] << endl;
}
}
}