#include<bits/stdc++.h>
using namespace std;
long long n,e[100009],g[100009],ans=2;
vector<int>a[100009];
void dfs1(long long d)
{
for(int i=0;i<a[d].size();i++)
{
if(g[a[d][i]]==0)
{
g[a[d][i]]=ans;
ans++;
dfs1(a[d][i]);
}
}
return;
}
void dfs(long long f,long long d)
{
for(int i=0;i<a[d].size();i++)
{
if(g[a[d][i]]>g[d])
{
e[a[d][i]]++;
dfs(d,a[d][i]);
}
}
return;
}
int main()
{
cin>>n;
for(int i=1;i<n;i++)
{
long long b,c;
cin>>b>>c;
a[b].push_back(c);
a[c].push_back(b);
}
g[1]=1;
dfs1(1);
for(int i=1;i<=n;i++)
{
long long d;
cin>>d;
dfs(0,d);
cout<<e[d]<<endl;
}
}
60分,四个点TLE