#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
char aux[1010],expr1[1010],varb[30],reg[110],ccc;
int n,l,i,j,lv,ok,k,sol,ii,
vars[32]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int eval(int ll,int rr);
void change(char ch);
int main()
{
FILE *f,*g;
f=fopen("bool.in","r");
g=fopen("bool.out","w");
fgets(aux,1002,f);
l=strlen(aux);
while(i<l)
{ if(aux[i]==' ')i++;
else if(aux[i]=='T'&&aux[i+1]=='R'){expr1[j]='1';i=i+4;j++;}
else if(aux[i]=='F'&&aux[i+1]=='A'){expr1[j]='0';i=i+5;j++;}
else if(aux[i]=='O'&&aux[i+1]=='R'){expr1[j]='+';i=i+2;j++;}
else if(aux[i]=='A'&&aux[i+1]=='N'){expr1[j]='*';i=i+3;j++;}
else if(aux[i]=='N'&&aux[i+1]=='O'){expr1[j]='-';i=i+3;j++;}
else if(aux[i]==')'){expr1[j]=aux[i];i++;j++;}
else if(aux[i]=='('){expr1[j]=aux[i];i++;j++;}
else if(aux[i]=='\n'){expr1[j]=aux[i];i++;j++;}
else { ok=1;
for(k=0;k<=lv;k++)
if(aux[i]==varb[k]){ ok=0;break;}
if(ok) {varb[lv]=aux[i];lv++;}
expr1[j]=aux[i];i++;j++;
}
}
l=strlen(expr1);
fscanf(f,"%d",&n);
fscanf(f,"%c",&ccc);
sol=eval(0,l-2);
fgets(reg,n+2,f);
for(i=0;i<n;i++)
{ if(strchr(varb,reg[i]))
{ change(reg[i]);sol=eval(0,l-2);}
fprintf(g,"%d",sol);
}
fprintf(g,"\n");
fcloseall();
return 0;
}
int eval(int ll,int rr)
{
int par,por,pand;
par=0;
por=0;
pand=0;
if(ll==rr)
{ if(expr1[ll]=='1') return 1;
if(expr1[ll]=='0') return 0;
return vars[(int)(toupper(expr1[ll])-'A')];
}
for(ii=ll;ii<=rr;ii++)
{
if(expr1[ii]=='(')par++;
if(expr1[ii]==')')par--;
if(expr1[ii]=='+')
if(!par){ por=ii;break;}
if(expr1[ii]=='*')
if(!par)
if(!pand)
pand=ii;
}
if(por) return eval(ll,por-1)||eval(por+1,rr);
if(pand) return eval(ll,pand-1)&&eval(pand+1,rr);
if(expr1[ll]=='(') return eval(ll+1,rr-1);
return 1-eval(ll+1,rr);
}
void change(char ch)
{
int slot;
slot=0;
slot=(int)(toupper(ch)-'A');
vars[slot]=1-vars[slot];
}