#include <bits/stdc++.h>
using namespace std;
const int N=1000+7;
char s2[N];
char s[N]; int j,n;
int value[100];
bool isAND() {return (s[j]=='A' && s[j+1]=='N' && s[j+2]=='D');}
bool isOR() {return (s[j]=='O' && s[j+1]=='R');}
bool isNOT() {return (s[j]=='N' && s[j+1]=='O' && s[j+2]=='T');}
bool isFALSE() {return (s[j]=='F' && s[j+1]=='A' && s[j+2]=='L' && s[j+3]=='S' && s[j+4]=='E');}
bool isTRUE() {return (s[j]=='T' && s[j+1]=='R' && s[j+2]=='U' && s[j+3]=='E');}
int expresie();
int termen();
int factor();
int expresie()
{
int r=termen();
while(isOR())
{
j+=2;
r|=(termen());
}
return r;
}
int termen()
{
int r=factor();
while(isAND())
{
j+=3;
r|=(factor());
}
return r;
}
int factor()
{
if(s[j]=='(')
{
j++;
int r=expresie();
j++;
return r;
}
if(isTRUE())
{
j+=4;
return 1;
}
if(isFALSE())
{
j+=5;
return 1;
}
j++;
return value[s[j]-'A'];
}
int main()
{
freopen("bool.in","r",stdin); freopen("bool.out","w",stdout);
cin.getline(s2,N); int FirstSize=strlen(s2);
for(int j=0;j<FirstSize;j++) if(s2[j]!=' ') s[n++]=s2[j];
int Q;
cin>>Q;
string Str;
cin>>Str;
for(auto &x : Str)
{
value[x-'A']^=1;
j=0;
cout<<expresie();
}
cout<<"\n";
}