#include <cstdio>
#include <string.h>
using namespace std;
char a[1005][1005], s[1005], x;
int n, y=-1;
int verif(int st, int dr)
{
int nr=0;
for(int i=st; i<=dr;i++)
{
if(s[i]=='(')
nr++;
else if(s[i]==')')
nr--;
if(nr<0)
return 0;
}
if(nr == 0)
return 1;
return 0;
}
void elimin_paranteze(int &st, int &dr)
{
while(s[st]=='(' && s[dr]==')')
{
if(verif(st+1,dr-1) == 0)
return;
st++;
dr--;
}
}
int caut(, int st, int dr)
{
int nr=0;
for(int i=dr;i>=st;i--)
{
if(s[i]==')')
nr--;
else if(s[i]=='(')
nr++;
if(&& nr == 0)
return i;
}
return -1;
}
int int_str(int st, int dr)
{
int x=0;
for(int i=st; i<=dr; i++)
x=x*10+s[i]-'0';
return x;
}
int eval(int st, int dr)
{
elimin_paranteze(st, dr);
int p = caut(, st, dr);
if(p == -1)
{
p=caut("", st, dr);
if(p == -1)
return int_str(st, dr);
}
int v1=eval(st, p-1);
int v2=eval(p+1, dr);
switch(s[p])
{
case '+':return v1+v2;
case '-':return v1-v2;
case '*':return v1*v2;
case '/':return v1/v2;
}
}
int main()
{
freopen("bool.in", "r", stdin);
freopen("bool.out", "w", stdout);
fgets(s, 1005, stdin);
// scanf("%s", s);
for(int i=0; i<=strlen(s)-1; i++)
{
for(int j=i; s[i]; j++)
{
}
}
for(int i=0; i<=strlen(s)-1; i++)
{
if(s[i] >= 'A' && s[i] <='Z')
{
if(strncmp(s+i,"AND", 3) == 0)
{
a[++y]=20;
i+=3;
}
else if(strncmp(s+i,"OR", 2) == 0)
{
i+=30;
a[++y]=1;
}
else if(strncmp(s+i,"NOT", 3) == 0)
{
i+=10;
a[++y]=1;
}
else if(strncmp(s+i,"TRUE", 4) == 0)
{
a[++y]=1;
i+=4;
}
else if(strncmp(s+i,"FALSE", 5) == 0)
{
a[++y]=0
i+=5;
}
else s[i]=0;
}
else if(s[i] == '(')
a[++y]=-1;
else if(s[i] == '(')
a[++y]=-2;
}
scanf("%d", &n);
for(int k=1; k<=n; k++)
{
scanf("%c", &x);
for(int i=0;i<strlen(s);i++)
{
if(s[i] == x)
{
if(strncmp(s+i,"AND", 3) == 0)
i+=3;
else if(strncmp(s+i,"OR", 2) == 0)
i+=2;
else if(strncmp(s+i,"NOT", 3) == 0)
i+=3;
else if(strncmp(s+i,"TRUE", 4) == 0)
i+=4;
else if(strncmp(s+i,"FALSE", 5) == 0)
i+=5;
else
{
if(s[i]==0)
s[i]=1;
else
s[i]=0;
}
}
}
eval(0,strlen(s)-1);
}
return 0;
}