using namespace std;
string s1[100001],s2[100001];
char e;
int n,q,k,l,p;
bool x[1000001];
bool solve()
{
if(s1[p][0]=='!')
{
p++;
if(solve())return 0;
return 1;
}
if(s1[p][0]=='&')
{
p++;
bool u=solve();
p++;
bool uu=solve();
if(u&&uu)return 1;
return 0;
}
if(s1[p][0]=='|')
{
p++;
bool u=solve();
p++;
bool uu=solve();
if(!u&&!uu)return 0;
return 1;
}
else if(s1[p][0]=='x')
{
int t=1,r=0;
while(s1[p][t]>='0'&&s1[p][t]<='9')
{
r=r*10+s1[p][t]-'0';t++;
}
if(x[r])return 1;
return 0;
}
}
int main()
{
freopen("expr.in","r",stdin);
freopen("expr.out","w",stdout);
do
{
cin>>s1[++k];
scanf("%c",&e);
}while(e!=10);
for(int i=1;i<=k;i++)s2[i]=s1[k-i+1];
for(int i=1;i<=k;i++)s1[i]=s2[i];
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&x[i]);
scanf("%d",&q);
while(q--)
{
scanf("%d",&l);
x[l]=!x[l];
p=1;
if(solve())printf("1\n");
else printf("0\n");
x[l]=!x[l];
}
return 0;
}```