
#include<bits/stdc++.h>
using namespace std;
bool tr[100010];
int tv[100010][100010];
void dfs(int n)
{
tr[n]&=0;
if(!tv[n][0])
return;
for(int i=1;i<=tv[n][0];i++)
dfs(tv[n][i]);
return;
}
int main()
{
int n,qu;
cin>>n>>qu;
for(int i=1;i<=n;i++)
cin>>tr[i];
int l,r;
for(int i=1;i<n;i++)
{
cin>>l>>r;
tv[l][0]++;
tv[l][tv[l][0]]=r;
}
int tmp;
for(int i=1;i<=qu;i++)
{
cin>>tmp;
dfs(tmp);
}
for(int i=1;i<=n;i++)
cout<<tr[i]<<' ';
return 0;
}