#include<bits/stdc++.h>
using namespace std;
vector<int> tree[100005];
bitset<100005> bs;
int n, q;
void dfs(int x){
bs.flip(x);
for(int i: tree[x])
dfs(i);
}signed main(){
scanf("%d", &n);
for(int i = 2; i <= n; ++i){
int k;
scanf("%d", &k);
tree[k].push_back(i);
}for(int i = 1; i <= n; ++i){
int k;
scanf("%1d", &k);
bool bl = k;
bs.set(i, bl);
}scanf("%d", &q);
while(q--){
int k;
scanf("%d", &k);
dfs(k);
}for(int i = 1; i <= n; ++i)
printf("%d", bs[i]? 1: 0);
return 0;
}