#include <bits/stdc++.h>
using namespace std;

int stk(string s,int p,int q,int r){
    int count=0;
    for(int i=0;i<s.size();i++){
        if(s[i]=='(')count++;
        else if(s[i]==')')count--;
        if(!count){
            if(s[i]=='*'){
                return min(stk(s.substr(0,i),p,q,r),stk(s.substr(i+1,s.size()-i-1),p,q,r));
            }
            if(s[i]=='+'){
                return max(stk(s.substr(0,i),p,q,r),stk(s.substr(i+1,s.size()-i-1),p,q,r));
            }
        }
    }
    if(s[0]=='('){
        count=1;
        for(int i=1;i<s.size();i++){
            if(s[i]=='(')count++;
            else if(s[i]==')')count--;
            if(!count){
                return stk(s.substr(1,i-1),p,q,r);
            }
        }
    }
     if(s[0]=='-'){
        return 2-(stk(s.substr(1,s.size()-1),p,q,r));
    }
    else if(s[0]=='0'){
        return 0;
    }
    else if(s[0]=='1'){
        return 1;
    }
    else if(s[0]=='2'){
        return 2;
    }
    else if(s[0]=='P'){
        return p;
    }
    else if(s[0]=='Q'){
        return q;
    }
    else if(s[0]=='R'){
        return r;
    }
    return 0;
}

void solve(string str){
    int ans=0;
    for(int p=0;p<3;p++){
        for(int q=0;q<3;q++){
            for(int r=0;r<3;r++){
                if(stk(str,p,q,r)==2){
                    ans++;
                }
            }
        }
    }
    cout<<ans<<endl;
}

int main(void){
    string s;
    while(cin>>s,s[0]!='.'){
        solve(s);
    }    
    
    
    
}