#include <fstream>
#include <map>
#include <cstring>
using namespace std;
ifstream cin("bool.in");
ofstream cout("bool.out");
map <char,bool> val;
char s[1005],cmodif;
string v[1005],q[1005],ver;
int ind,ret,n,i,tempo,mn;
bool prev,curr;
bool exprnot();
bool exprand();
bool expror();
string variable();
bool exprnot()
{
//cout<<"aici exprnot intru"<<' '<<ind<<'\n';
string op=variable();
int urc=ret;
bool evalnot=0;
if (op=="NOT")
{
ind++;
evalnot=!exprand();
}
else
{
ind-=urc;
evalnot=exprand();
}
//cout<<"aici exprnot dupa and"<<' '<<ind<<' '<<evalnot<<'\n';
return evalnot;
}
bool exprand()
{
//cout<<"aici exprand intru"<<' '<<ind<<'\n';
bool evaland=expror();
//cout<<"aici exprand dupa or"<<' '<<ind<<'\n';
string op=variable();
int urc=ret;
while (op=="AND")
{
ind++;
evaland=(evaland&expror());
op=variable();
urc=ret;
}
ind-=urc;
//cout<<"evaland afis "<<evaland<<'\n';
return evaland;
}
bool expror()
{
//cout<<"aici expror"<<' '<<ind<<' ';
string op="";
bool evalor=0;
int urc=0;
//cout<<"verific "<<ind<<' '<<v[ind]<<'\n';
if (s[ind]=='('||v[ind]=="AND"||v[ind]=="NOT")
{
if (s[ind]=='(') {ind++; tempo=1;}
evalor=exprnot();
if (tempo==1) {ind++; tempo=0;}
if (s[ind]==' ') ind++;
}
else
{
op=variable();
evalor=0;
urc=ret;
//cout<<op<<' '<<urc<<' '<<ind<<' ';
if (op=="TRUE") evalor=1;
else if (op=="FALSE") evalor=0;
else if (urc==1) {//cout<<val[s[ind-1]];
evalor=val[s[ind-1]];}
//cout<<'\n';
}
if (s[ind]==' ') ind++;
op=variable();
urc=ret;
while (op=="OR")
{
ind++;
//cout<<"verific "<<ind<<' '<<v[ind]<<'\n';
if (s[ind]=='('||v[ind]=="AND"||v[ind]=="NOT")
{
v[ind]="";
if (s[ind]=='(') {ind++; tempo=1;}
evalor=evalor|exprnot();
if (tempo==1) {ind++; tempo=0;}
if (s[ind]==' ') ind++;
}
else
{
//cout<<"AL DOILEA ORRRR"<<' ';
op=variable();
urc=ret;
//cout<<op<<' '<<urc<<' '<<ind<<' ';
if (op=="TRUE") evalor=1;
else if (urc==1) {//cout<<val[s[ind-1]];
evalor=evalor|val[s[ind-1]];}
if (s[ind]==' ') ind++;
//cout<<'\n';
}
op=variable();
urc=ret;
}
ind-=urc;
//cout<<"afisez evalor "<<evalor<<'\n';
return evalor;
}
string variable()
{
//cout<<"aici variable"<<' '<<ind<<' ';
string op="";
int urc=0;
while (s[ind]>='A'&&s[ind]<='Z')
{
op=op+s[ind];
ind++; urc++;
}
ret=urc;
//cout<<op<<' ';
return op;
}
int main()
{cin.getline(s,1005);
for (i=0; i<strlen(s); i++)
{
if (s[i]=='(') v[i]="(";
if (s[i]==')') v[i]=")";
}
for (i=strlen(s); i>0; i--)
if (s[i]=='R'&&s[i-1]=='O') {v[i]="OR"; mn=i;}
for (i=2; i<strlen(s); i++)
{
if (s[i]=='T'&&s[i-1]=='O'&&s[i-2]=='N') v[i]="NOT";
if (s[i]=='D'&&s[i-1]=='N'&&s[i-2]=='A') v[i]="AND";
}
for (i=strlen(s)-1; i>=mn; i--)
if (v[i]!=""&&v[i-1]==""&&v[i]!="OR") v[i-1]=v[i];
for (i=0; i<mn; i++) v[i]="";
for (i=mn+3; i<strlen(s); i++)
{
while (v[i]!="OR"&&i<strlen(s)) {v[i]=""; i++;}
i+=2;
}
for (i=0; i<strlen(s); i++) q[i]=v[i];
//for (i=0; i<strlen(s); i++)
//cout<<i<<' '<<v[i]<<'\n';
//cout<<mn<<'\n';
cin>>n;
for (i=1; i<=n; i++)
{
cin>>cmodif;
val[cmodif]=!val[cmodif];
ind=0;
for (int j=0; j<strlen(s); j++) v[j]=q[j];
cout<<expror();
}
return 0;
}