#include<bits/stdc++.h>
using namespace std;
int n,q;
string s;
bool a[100001],ansb[1000001];
bool yunsuan()
{
stack<bool>ans;
for(int i=0;i<s.size();i++)
{
if(s[i]>='0'&&s[i]<='9')
{
ans.push(a[s[i]-'0']);
}
else if(s[i]=='&')
{
int x1,y1;
x1=ans.top();
ans.pop();
y1=ans.top();
ans.pop();
ans.push(x1&&y1);
}
else if(s[i]=='|')
{
int x1,y1;
x1=ans.top();
ans.pop();
y1=ans.top();
ans.pop();
ans.push(x1||y1);
}
else if(s[i]=='!')
{
int x1;
x1=ans.top();
ans.pop();
ans.push(!x1);
}
}
return ans.top();
}
int main()
{
int d=0;
getline(cin,s);
cin>>n;
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
cin>>q;
for(int i=1;i<=q;i++)
{
int k;
cin>>k;
a[k]=!a[k];
ansb[++d]=yunsuan();
a[k]=!a[k];
}
for(int i=1;i<=d;i++)
{
cout<<ansb[i]<<endl;
}
}