#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long LL; typedef pairPII; typedef pairPII2; string s; int n; int len; mapval; int value[20]; int at; int good; int eva() { // cout << at << " " << s[at] << endl; if(good != 1) return 0; if(at >= len) { good = -2; } else if(s[at] >= 'a' && s[at] <= 'z') { return value[val[s[at++]]]; } else if(s[at] >= 'A' && s[at] <= 'Z') { at++; int x, y; switch(s[at - 1]) { case 'C': x = eva(); y = eva(); if(x && !y) return 0; else return 1; case 'N': x = eva(); return x ^ 1; case 'K': x = eva(); y = eva(); return x & y; case 'A': x = eva(); y = eva(); return x | y; case 'D': x = eva(); y = eva(); return !(x & y); case 'E': x = eva(); y = eva(); return (x == y); case 'J': x = eva(); y = eva(); return x ^ y; default: good = -1; break; } } else { good = -1; } } int main() { while(cin >> s) { good = 1; len = s.length(); n = 0; val.clear(); for(int i = 0; i < len; i++ ) { if(s[i] >= 'a' && s[i] <= 'z' && val.find(s[i]) == val.end()) { val[s[i]] = n++; } } int ct = 0, cn = 0; for(int i = 0; i < 1<