#include <fstream>
#include <cstring>
using namespace std;
ifstream cin("bool.in");
ofstream cout("bool.out");
char str[100010], ch, *p;
int len;
bool val[110];
bool result();
bool nmb();
bool term();
void skipspace(); ///
int main() ///
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin.getline(str,100001);
len=strlen(str);
strcat(str," ");
int N;
cin>>N;
while(N--)
{
cin>>ch;
val[ch-'A']=!val[ch-'A'];
p=str;
cout<<result();
}
cout<<'\n';
return 0;
}
void skipspace()
{
while(*p==' ')
++p;
}
bool nmb()
{
bool r=0;
skipspace();
if(*p=='N' && *(p+1)=='O' && *(p+2)=='T')
{
p+=3;
skipspace();
r=!term();
}
else if(*p=='T' && *(p+1)=='R' && *(p+2)=='U' && *(p+3)=='E')
{
p+=4;
r=1;
}
else if(*p=='F' && *(p+1)=='A' && *(p+2)=='L' && *(p+3)=='S' && *(p+4)=='E')
{
p+=5;
r=0;
}
else{
r=val[*p-'A'];
p++;
}
skipspace();
return r;
}
bool term()
{
bool r=0;
skipspace();
if(*p=='(')
{
++p;
skipspace();
r=result();
skipspace();
++p;
}
else if(isalpha(*p) || (*p=='N' && *(p+1)=='O' && *(p+2)=='T'))
r=nmb();
skipspace();
return r;
}
bool element()
{
bool r=term();
skipspace();
if(*p=='A' && *(p+1)=='N' && *(p+2)=='D')
{
p+=3;
skipspace();
r&=element();
}
skipspace();
return r;
}
bool result()
{
bool r=element();
skipspace();
if(*p=='O' && *(p+1)=='R')
{
p+=2;
skipspace();
r|=element();
}
skipspace();
return r;
}