//49
#include<iostream>
#include<cstring>
#include<algorithm>

using namespace std;

int eval(const char **s){
  if(**s=='('){
    (*s)++;
    int a=eval(s);
    char o=**s;
    (*s)++;
    int b=eval(s);
    (*s)++;
    if(o=='*'){
      return min(a,b);
    }else{
      return max(a,b);
    }
  }else if(**s=='-'){
    (*s)++;
    return -eval(s)+2;
  }else{
    char c=**s;
    (*s)++;
    return c-'0';
  }
}

int dfs(const char *os,char q){
  if(q>'R'){
    return eval(&os)==2;
  }else{
    int r=0;
    for(int i=0;i<3;i++){
      char s[80];
      strcpy(s,os);
      replace(s,s+80,q,char('0'+i));
      r+=dfs(s,q+1);
    }
    return r;
  }
}

int main(){
  for(char s[80];cin>>s,s[0]!='.';){
    cout<<dfs(s,'P')<<endl;
  }
  return 0;
}