传送门
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=50002,mod=1e9+7;
int n,r,k,a[N],ask[N],ans[N];vector <int> g[N];
int dfs(int x)
{
int val=0;
for (int e : g[x])
{
val+=dfs(e);
}
val++;
a[x]=val;
return val;
}
signed main()
{
cin>>n>>r>>k;
for (int i=1,u,v;i<=n-1;i++) cin>>u>>v,g[u].push_back(v);
dfs(r);
for (int i=1;i<=k;i++) cin>>ask[i];
for (int i=1;i<=n;i++)
{
int val=0,o=0;
for (int e : g[i])
{
o+=a[e];
}
for (int e : g[i])
{
val+=a[e]*(o-a[e]);
}
ans[i]=val+a[i]*2-1;
}
for (int i=1;i<=k;i++) cout<<ans[ask[i]]<<endl;
return 0;
}