#include<bits/stdc++.h>
using namespace std;
unsigned long long ans[500001],sum[500001];
vector<unsigned int> son[500001],gong;
unsigned int father[500001],v[500001];
bool used[500001];
char value[500001];
int main(){
unsigned int n,f;
cin>>n;
for(unsigned int i=0;i<n;i++){
cin>>value[i];
}
for(unsigned int i=1;i<n;i++){
cin>>f;
son[f-1].push_back(i);
father[i]=f-1;
}
for(unsigned int i=0;i<n;i++){
cout<<"i:"<<i<<endl;
if(value[i]=='('){
v[i]=0;
}
else{
f=i;
while((value[f]!='('||used[f])&&f!=0){
cout<<"f:"<<f<<endl;
f=father[f];
cout<<"f:"<<f<<"value:"<<value[f]<<endl;
}
if(value[f]=='('&&!used[f]){
v[i]=v[father[f]]+1;
used[f]=1;
}
}
if(i){
sum[i]=sum[father[i]]+v[i];
}
cout<<"sum:"<<sum[i]<<"*i:"<<(i+1)*sum[i]<<endl;
ans[i]=(i+1)*sum[i];
}
unsigned long long shuchu=0;
for(unsigned int i=0;i<n;i++){
shuchu^=ans[i];
}
cout<<shuchu;
return 0;
}