#include <bits/stdc++.h>
using namespace std;
char sir[1005];
char sir2[105];
int v[1005];
bool w[105];
int v2[1005];
int n;
/*int strlen(const char *str){
const char *s;
for (s = str; *s; ++s)
;
return (s - str);
}*/
int cauta(int &i,int x,int kk){
i++;
for(;i<x && sir[i]!=')';i++)
if(sir[i]=='('){
int kkk=kk;
v2[++kk]=cauta(i,x,kkk);
}
else if(sir[i]=='N' && sir[i+1]=='O'){
if(w[sir[i+4]-'A']==0)
v2[++kk]=1;
else
v2[++kk]=0;
i+=4;
}
else if(sir[i]=='A' && sir[i+1]=='N')
v2[++kk]=3 , i+=2;
else if(sir[i]=='O' && sir[i+1]=='R')
v2[++kk]=4 , i++;
else if(sir[i]=='T' && sir[i+1]=='R')
v2[++kk]=1 , i+=3;
else if(sir[i]=='F' && sir[i+1]=='A')
v2[++kk]=0 , i+=4;
else if(sir[i]>='A'&&sir[i]<='Z'){
if(w[sir[i]-'A']==0)
v2[++kk]=0;
else
v2[++kk]=1;
}
int j=1;
int sum;
if(v2[j]==2)
sum=!v2[j+1] , j+=2;
else
sum=v2[i] , j++;
for(;j<=kk;++i)
if(v2[j]==3)
sum=sum&v[j+1] , j+=2;
else if(v2[j]==4)
sum=sum|v2[j+1] , j+=2;
return sum;
}
int main(){
freopen("bool.in","r",stdin);
gets(sir);
scanf("%d%s",&n,sir2);
fclose(stdin);
freopen("bool.out","w",stdout);
int k=0;
for(int j=0;j<n;j++){
w[sir2[j]-'A']=!w[sir2[j]-'A'];
int x=strlen(sir);
k=0;
//printf("%d",x);
for(int i=0;i<x;i++){
if(sir[i]=='(')
v[++k]=cauta(i,x,0);
else if(sir[i]=='N' && sir[i+1]=='O'){
if(w[sir[i+4]-'A']==0)
v2[++k]=1;
else
v2[++k]=0;
i+=4;
}
else if(sir[i]=='A' && sir[i+1]=='N')
v[++k]=3 , i+=2;
else if(sir[i]=='O' && sir[i+1]=='R')
v[++k]=4 , i++;
else if(sir[i]=='T' && sir[i+1]=='R')
v[++k]=1 , i+=3;
else if(sir[i]=='F' && sir[i+1]=='A')
v[++k]=0 , i+=4;
else if(sir[i]>='A'&&sir[i]<='Z'){
if(w[sir[i]-'A']==0)
v[++k]=0;
else
v[++k]=1;
}
}
int i=1,sum;
if(v[i]==2)
sum=!v[i+1] , i+=2;
else
sum=v[i] , i++;
for(;i<=k;++i)
if(v[i]==3)
sum=sum&v[i+1] , i+=2;
else if(v[i]==4)
sum=sum|v[i+1] , i+=2;
printf("%d",sum);
//printf("\n");
}
fclose(stdout);
return 0;
}