#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char s[1000001];
int n,q,num,a[100001],top;
bool x[100001],jl[100001];
int main(){
gets(s);
cin>>n;
for(int i=1;i<=n;i++)cin>>x[i];
cin>>q;
for(int i=1;i<=q;i++){
cin>>num;
if(a[num]){cout<<a[num];continue;}
x[num]=(!x[num]);
for(int i=0;s[i];i++){
if(s[i]==' ')continue;
if(s[i]=='x')jl[++top]=x[int(s[i+1]-48)];
if(s[i]=='!')jl[top]=(!jl[top]);
if(s[i]=='|'){
bool p=(jl[top]|jl[top-1]);
jl[--top]=p;
}
if(s[i]=='&'){
bool p=(jl[top]&jl[top-1]);
jl[--top]=p;
}
}
a[num]=jl[1];
cout<<a[num]<<endl;
x[num]=(!x[num]);
memset(jl,0,sizeof(jl));
top=0;
}
return 0;
}