// ACM-ICPCà\I2008 C. jyjfö

#include <iostream>
#include <string>

using namespace std;

int pos;
string t;

int calc(){
	char c = t[pos++];
	if(isdigit(c)) return c - '0';
	if(c == '-')   return 2 - calc();
	int a = calc();
	char op = t[pos++];
	int b = calc();
	pos++;
	return op == '+' ? max(a,b) : min(a,b);
}

int main(){
	string s;
	while(cin >> s){
		if(s == ".") break;
		int ans = 0;
		for(int P=0;P<3;P++){
			for(int Q=0;Q<3;Q++){
				for(int R=0;R<3;R++){
					t = "";
					pos = 0;
					for(int i=0;i<s.size();i++){
						if(s[i]=='P') t += P + '0';
						else if(s[i]=='Q') t += Q + '0';
						else if(s[i]=='R') t += R + '0';
						else t += s[i];
					}
					ans += calc() == 2;
				}
			}
		}
		cout << ans << endl;
	}
}