#include<bits/stdc++.h>

using namespace std;

#define rep(i, n) REP(i, 0, n)
#define REP(i, a, n) for(int i=(a); i<(n); i++)

string s;
int P, Q, R;

int neg(int a) { return (a==0? 2:(a==1?1:0)); }
int mul(int a, int b) { return min(a, b); }
int add(int a, int b) { return max(a, b); }

int dfs(int l, int r) {
    if(s[l]=='-') return neg(dfs(l+1, r));
    if(s[l]=='(' && s[r-1]==')') {
        int m, cnt = 0;
        for(m=l+1; m<r-1; m++) {
            if(cnt == 0 && (s[m]=='*' ||  s[m]=='+')) break;
            if(s[m]=='(') cnt++;
            if(s[m]==')') cnt--;
        };
        if(s[m]=='*') return mul(dfs(l+1, m), dfs(m+1, r-1));
        if(s[m]=='+') return add(dfs(l+1, m), dfs(m+1, r-1));
    }
    
    if(isdigit(s[l])) return s[l]-'0';
    return (s[l]=='P'? P:(s[l]=='Q'? Q:R));
}

int main() {
    while(cin>>s, s!=".") {
        int ans = 0;
        for(P=0; P<3; P++) for(Q=0; Q<3; Q++) for(R=0; R<3; R++)
            if(dfs(0, s.size()) == 2) ans++;
        cout << ans << endl;
    }
}

