#include<bits/stdc++.h>
using namespace std;
const int MAXN=100010;
int n,t,a[MAXN][2],cnt[MAXN],m,p;
string s;
void dfs(int x){
cnt[x]++;
if(x<n&&a[x][0]!=0) dfs(a[x][0]);
if(x<n&&a[x][1]!=0) dfs(a[x][1]);
}
int main(){
cin>>n;
for(int i=1;i<n;++i){
cin>>p;
if(a[p][0]==0) a[p][0]=i+1;
else a[p][1]=i+1;
}
getline(cin,s);
getline(cin,s);
cin>>m;
for(int i=1;i<=m;++i){
cin>>t;
dfs(t);
}
for(int i=1;i<=n;++i){
if(cnt[i]%2!=0)
if(s[i-1]=='0') s[i-1]='1';
else s[i-1]='0';
}
cout<<s<<endl;
return 0;
}