#include <iostream>
#include <cctype>
#include <string>

using namespace std;

typedef string::const_iterator state;

int p,q,r;

int expression(state &begin);
int term(state &begin);
int number(state &begin);
int factor(state &begin);

int number(state &begin){
	int ans;
	if(*begin=='0'){
		ans =0;
	}
	if(*begin=='1'){
		ans =1;
	}
	if(*begin=='2'){
		ans =2;
	}
	if(*begin=='P'){
		ans =p;
	}
	if(*begin=='Q'){
		ans =q;
	}
	if(*begin=='R'){
		ans =r;
	}
	begin++;
	return ans;
}

int factor(state &begin){
	if(*begin=='('){
		begin++;
		int ans = expression(begin);
		begin++;
		return ans;
	}else{
		return number(begin);
	}
}

int term(state &begin){
	int ans;
	int t=0;
	while(*begin=='-'){
		t+=1;
		begin++;
	}
	ans = factor(begin);
	if(t%2==0)return ans;
	return 2-ans;
}

int expression(state &begin){
	int ans = term(begin);
	while(1){
		if(*begin=='*'){
			begin++;
			int ans2 = term(begin);
			if(ans==0||ans2==0){
				ans = 0;
			}else if(ans==1||ans2==1){
				ans = 1;
			}else{
				ans = 2;
			}
		}else if(*begin=='+'){
			begin++;
			int ans2 = term(begin);
			if(ans==2||ans2==2){
				ans = 2;
			}else if(ans==1||ans2==1){
				ans = 1;
			}else{
				ans = 0;
			}
		}else{
			break;
		}
	}
	return ans;
}


int main(){
	string s;
	while(cin >> s&&s!="."){
		int ans = 0;
		for(int i=0;i<3;i++){
			for(int j=0;j<3;j++){
				for(int k=0;k<3;k++){
					p=i;
					q=j;
					r=k;
					state begin =s.begin();
					if(expression(begin)==2){
						ans +=1;
					}
				}
			}
		}
		cout << ans << endl;
	}
}