#include<stdio.h>
#include<string.h>
char *expr,*val,*aux,c;
int l,l1,i,n,j,lv;
int main()
{
FILE *f,*g;
f=fopen("bool.in","r");
g=fopen("bool.out","w");
expr=new char [1000];
aux=new char [1000];
val=new char [1000];
fgets(expr,1000,f);
l=strlen(expr);
aux=strstr(expr,"TRUE");
while(aux)
{ l1=strlen(aux);
for(i=1;i<=3;i++)aux++;
aux[0]='1';
strcpy(expr+l-l1,aux);
l=strlen(expr);
aux=strstr(expr,"TRUE");
}
aux=strstr(expr,"FALSE");
while(aux)
{ l1=strlen(aux);
for(i=1;i<=4;i++)aux++;
aux[0]='0';
strcpy(expr+l-l1,aux);
l=strlen(expr);
aux=strstr(expr,"FALSE");
}
aux=strstr(expr,"OR");
while(aux)
{ l1=strlen(aux);
for(i=1;i<=1;i++)aux++;
aux[0]='+';
strcpy(expr+l-l1,aux);
l=strlen(expr);
aux=strstr(expr,"OR");
}
aux=strstr(expr,"AND");
while(aux)
{ l1=strlen(aux);
for(i=1;i<=2;i++)aux++;
aux[0]='*';
strcpy(expr+l-l1,aux);
l=strlen(expr);
aux=strstr(expr,"AND");
}
aux=strstr(expr,"NOT");
while(aux)
{ l1=strlen(aux);
for(i=1;i<=2;i++)aux++;
aux[0]='~';
strcpy(expr+l-l1,aux);
l=strlen(expr);
aux=strstr(expr,"NOT");
}
aux=strstr(expr," ");
while(aux)
{ l1=strlen(aux);
aux++;
strcpy(expr+l-l1,aux);
l=strlen(expr);
aux=strstr(expr," ");
}
strcpy(val,expr);
fscanf(f,"%d",&n);
fscanf(f,"%c",&c);
for(j=1;j<=n;j++)
{
fscanf(f,"%c",&c);
for(i=0;i<=l;i++)
{ if(expr[i]==c) expr[i]=c-'A'+'a';
else
if(expr[i]==c-'A'+'a')expr[i]=c;
}
strcpy(val,expr);
for(i=0;i<=l;i++)
{ if(('a'<=expr[i])&&('z'>=expr[i]))val[i]='1';
else
if(('A'<=expr[i])&&('Z'>=expr[i]))val[i]='0';
}
lv=l;
while(lv>2)
{ aux=strstr(val,"~1");
if(aux){l1=strlen(aux);aux++;aux[0]='0';strcpy(val+lv-l1,aux);lv=lv-1;}
aux=strstr(val,"~0");
if(aux){l1=strlen(aux);aux++;aux[0]='1';strcpy(val+lv-l1,aux);lv=lv-1;}
aux=strstr(val,"(1)");
if(aux){l1=strlen(aux);aux++;aux++;aux[0]='1';strcpy(val+lv-l1,aux);lv=lv-2;}
aux=strstr(val,"(0)");
if(aux){l1=strlen(aux);aux++;aux++;aux[0]='1';strcpy(val+lv-l1,aux);lv=lv-2;}
aux=strstr(val,"1+1");
if(aux){l1=strlen(aux);aux++;aux++;aux[0]='1';strcpy(val+lv-l1,aux);lv=lv-2;}
aux=strstr(val,"0+1");
if(aux){l1=strlen(aux);aux++;aux++;aux[0]='1';strcpy(val+lv-l1,aux);lv=lv-2;}
aux=strstr(val,"1+0");
if(aux){l1=strlen(aux);aux++;aux++;aux[0]='1';strcpy(val+lv-l1,aux);lv=lv-2;}
aux=strstr(val,"0+0");
if(aux){l1=strlen(aux);aux++;aux++;aux[0]='0';strcpy(val+lv-l1,aux);lv=lv-2;}
aux=strstr(val,"1+1");
if(aux){l1=strlen(aux);aux++;aux++;aux[0]='1';strcpy(val+lv-l1,aux);lv=lv-2;}
aux=strstr(val,"1*1");
if(aux){l1=strlen(aux);aux++;aux++;aux[0]='1';strcpy(val+lv-l1,aux);lv=lv-2;}
aux=strstr(val,"1*0");
if(aux){l1=strlen(aux);aux++;aux++;aux[0]='0';strcpy(val+lv-l1,aux);lv=lv-2;}
aux=strstr(val,"0*1");
if(aux){l1=strlen(aux);aux++;aux++;aux[0]='0';strcpy(val+lv-l1,aux);lv=lv-2;}
aux=strstr(val,"0*0");
if(aux){l1=strlen(aux);aux++;aux++;aux[0]='0';strcpy(val+lv-l1,aux);lv=lv-2;}
}
fprintf(g,"%c",val[0]);
}
fcloseall();
return 0;
}