#include <fstream>
#include <map>
using namespace std;
ifstream cin("bool.in");
ofstream cout("bool.out");
map <char,bool> val;
char s[1005],cmodif;
int ind,ret,n,i;
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<<'\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;
if (op=="AND")
{
ind++;
evaland=(evaland&expror());
}
else ind-=urc;
return evaland;
}
bool expror()
{
//cout<<"aici expror"<<' '<<ind<<' ';
string op="";
bool evalor=0;
int urc=0;
if (s[ind]=='(')
{
ind++;
evalor=exprnot();
ind++;
if (s[ind]==' ') ind++;
}
else
{
op=variable();
evalor=0;
urc=ret;
if (op=="NOT")
{
ind-=urc;
evalor=exprnot();
}
else
{
//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;
if (op=="OR")
{
ind++;
if (s[ind]=='(')
{
ind++;
evalor=evalor|exprnot();
ind++;
if (s[ind]==' ') ind++;
}
else
{
//cout<<"AL DOILEA ORRRR"<<' ';
op=variable();
urc=ret;
if (op=="NOT")
{
ind-=urc;
evalor=evalor|exprnot();
}
else
{
//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';
}
}
}
else ind-=urc;
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);
cin>>n;
for (i=1; i<=n; i++)
{
cin>>cmodif;
val[cmodif]=!val[cmodif];
ind=0;
cout<<expror();
}
return 0;
}