#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){
i++;
//if(sir[i]=='(')
while(!(sir[i]>='A'&&sir[i]<='Z'))
i++;
int sum=w[sir[i]-'A'];
for(;i<x && sir[i]!=')';i++)
if(sir[i]=='A' && sir[i+1]=='N'){//v[++k]=3 , i+=2;
if(sir[i+4]=='T'&&sir[i+5]=='R')
sum=sum&1 , i+=5;
else if(sir[i+4]=='F'&&sir[i+5]=='A')
sum=sum&0 ,i+=6;
else if(sir[i+4]=='N'&&sir[i+5]=='O')
sum=sum&(!w[sir[i+8]-'A']) , i+=8;
else if(sir[i+4]=='(')
sum=sum&cauta(i+4,x);
else
sum=sum&w[sir[i+4]-'A'] , i+=4;
}
else if(sir[i]=='O' && sir[i+1]=='R'){
if(sir[i+3]=='T'&&sir[i+4]=='R')
sum=sum|1 , i+=5;
else if(sir[i+3]=='F'&&sir[i+4]=='A')
sum=sum|0 ,i+=6;
else if(sir[i+3]=='N'&&sir[i+4]=='O')
sum=sum|(!w[sir[i+7]-'A']) , i+=7;
else if(sir[i+3]=='(')
sum=sum|cauta(i+3,x);
else
sum=sum|w[sir[i+3]-'A'] , i+=3;
}//v[++k]=4 , 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);
ifstream f("bool.in");
f.getline(sir,1005);
f>>n;
f.get();
f>>sir2;
//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);
int i=0;
while(!(sir[i]>='A'&&sir[i]<='Z'))
i++;
int sum=w[sir[i]-'A'];
for(;i<x;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;
}*/
if(sir[i]=='A' && sir[i+1]=='N'){//v[++k]=3 , i+=2;
if(sir[i+4]=='T'&&sir[i+5]=='R')
sum=sum&1 , i+=5;
else if(sir[i+4]=='F'&&sir[i+5]=='A')
sum=sum&0 ,i+=6;
else if(sir[i+4]=='N'&&sir[i+5]=='O')
sum=sum&(!w[sir[i+8]-'A']) , i+=8;
else if(sir[i+4]=='(')
sum=sum&cauta(i+4,x);
else
sum=sum&w[sir[i+4]-'A'] , i+=4;
}
else if(sir[i]=='O' && sir[i+1]=='R'){
if(sir[i+3]=='T'&&sir[i+4]=='R')
sum=sum|1 , i+=5;
else if(sir[i+3]=='F'&&sir[i+4]=='A')
sum=sum|0 ,i+=6;
else if(sir[i+3]=='N'&&sir[i+4]=='O')
sum=sum|(!w[sir[i+7]-'A']) , i+=7;
else if(sir[i+3]=='(')
sum=sum|cauta(i+3,x);
else
sum=sum|w[sir[i+3]-'A'] , i+=3;
}//v[++k]=4 , i++;
/*else if(sir[i]=='T' && sir[i+1]=='R'){
sum//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;
}*/
}
//i=1;
/*int 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("\n");*/
printf("%d",sum);
}
fclose(stdout);
return 0;
}