#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("bool.in");
ofstream fout("bool.out");
const int DIM = 1005;
bool val[DIM];
int n, i;
char s[DIM], a[DIM], s1[DIM];
bool lowpriority();
bool midpriority();
bool highpriority();
bool lowpriority(){
bool r = midpriority();
while ( s[i] == 'O' && s[i+1] == 'R' ){
i += 2; /// OR x
r |= midpriority();
}
return r;
}
bool midpriority(){
bool r = highpriority();
while ( s[i] == 'A' && s[i+1] == 'N' && s[i+2] == 'D' ){
i += 3; ///AND x
r &= highpriority();
}
return r;
}
bool highpriority(){
bool r;
if ( s[i] == '(' ){
i++; /// (x
r = lowpriority(); /// x
i++; /// x ...
} else {
if ( s[i] == 'N' && s[i+1] == 'O' && s[i+2] == 'T' ){
i += 3; ///NOT
r = !lowpriority();
} else {
if ( s[i] == 'F' && s[i+1] == 'A' && s[i+2] == 'L' && s[i+3] == 'S' && s[i+4] == 'E' ){
i += 5; /// FALSE
r = false;
} else {
if ( s[i] == 'T' && s[i+1] == 'R' && s[i+2] == 'U' && s[i+3] == 'E' ){
i += 4; /// TRUE
r = true;
} else {
r = val[ s[i] ];
i++;
}
}
}
}
return r;
}
int main(){
fin.getline(s, DIM);
int m = strlen(s);
int k = 0;
for (int j = 0; j < m; j++)
if (s[j] != ' ')
s1[k++] = s[j];
strcpy(s, s1);
fin >> n;
fin >> a;
for (int j = 0; j < n; j++) {
val[ a[j] ] = !val[ a[j] ];
i = 0;
fout << lowpriority();
}
return 0;
}
/// lowpriority = .. or ..
/// midpriority = .. and..
/// highpriority = NOT, ( ), FALSE, TRUE, variabila