#include<cstdio>
#define LEN 1000
#define N 100
using namespace std;
char S[LEN+1];
char modificari[N+1];
bool val[27];
bool expresie(char* &s);
bool fact(char* &s){
bool R;
if (s[0]=='('){
s++;
R=expresie(s);
}
else
if (s[0]=='1' ||s[0]=='0') R=s[0]-'0';
else R=val[s[0]-'A'];
s++;
return R;
}
bool eval2(char* &s){
bool R,sign=0;
if (s[0]=='!'){
s++;
sign=1;
}
R=fact(s);
return R^sign;
}
bool eval1(char* &s){
bool T=eval2(s);
bool R;
R=T;
while(s[0]=='&'){
s++;
T=eval2(s);
R=(R&T);
}
return R;
}
bool expresie(char* &s){
bool T=eval1(s);
bool R;
R=T;
while(s[0]=='|'){
s++;
T=eval1(s);
R=(R|T);
}
return R;
}
void trans(){
int i,j;
i=0;
j=0;
while(S[i]!='\n' &&S[i]!='\0'){
if (S[i]==' ') i++;
else
if (S[i]=='A' &&S[i+1]=='N'){
S[j]='&';
j++;
i+=3;
}
else
if (S[i]=='O' &&S[i+1]=='R'){
S[j]='|';
j++;
i+=2;
}
else
if (S[i]=='N' &&S[i+1]=='O'){
S[j]='!';
j++;
i+=3;
}
else
if (S[i]=='T' &&S[i+1]=='R'){
S[j]='1';
j++;
i+=4;
}
else
if (S[i]=='F' &&S[i+1]=='A'){
S[j]='0';
j++;
i+=5;
}
else {
S[j]=S[i];
j++;
i++;
}
}
S[j]='\0';
}
int main(){
freopen ("bool.in","r",stdin);
freopen ("bool.out","w",stdout);
int n,i;
char *s;
gets(S);
scanf ("%d\n",&n);
gets(modificari);
trans();
for(i=0;i<n;i++){
val[modificari[i]-'A']=(val[modificari[i]-'A']^1);
s=S;
modificari[i]=expresie(s)+'0';
}
puts(modificari);
return 0;
}