#include <bits/stdc++.h>
using namespace std;
long long int a[3][3] = {{0, 0, 0}, {0, 1, 1}, {0, 1, 2}};
long long int b[3][3] = {{0, 1, 2}, {1, 1, 2}, {2, 2, 2}};
pair<long long int, long long int> kansu(string s, long long int n,
                                         long long int p, long long int q,
                                         long long int r) {
  long long int k = 1;
  bool f = false;
  bool c = 0;
  while (true) {
    if (s[n] == ')') break;
    if (s[n] == '0') {
      k = 0;
      if (f == true) {
        k = 2 - k;
        f = false;
      }
    } else if (s[n] == '1') {
      k = 1;
      if (f == true) {
        k = 2 - k;
        f = false;
      }
    } else if (s[n] == '2') {
      k = 2;
      if (f == true) {
        k = 2 - k;
        f = false;
      }
    } else if (s[n] == 'P') {
      k = p;
      if (f == true) {
        k = 2 - k;
        f = false;
      }
    } else if (s[n] == 'Q') {
      k = q;
      if (f == true) {
        k = 2 - k;
        f = false;
      }
    } else if (s[n] == 'R') {
      k = r;
      if (f == true) {
        k = 2 - k;
        f = false;
      }
    } else if (s[n] == '-') {
      if (f == true) {
        f = false;
      } else {
        f = true;
      }
    } else if (s[n] == '*') {
      pair<long long int, long long int> w = kansu(s, n + 1, p, q, r);
      k = a[k][w.first];
      n = w.second;
      break;
    } else if (s[n] == '+') {
      pair<long long int, long long int> w = kansu(s, n + 1, p, q, r);
      k = b[k][w.first];
      n = w.second;
      break;
    } else if (s[n] == '(') {
      pair<long long int, long long int> w = kansu(s, n + 1, p, q, r);
      k = w.first;
      n = w.second;
    }
    n++;
  }
  return make_pair(k, n);
}
int main() {
  while (true) {
    string s;
    cin >> s;
    if (s == ".") break;
    s = s + ")";
    long long int ans = 0;
    for (long long int p = 0; p < 3; p++) {
      for (long long int q = 0; q < 3; q++) {
        for (long long int r = 0; r < 3; r++) {
          if (kansu(s, 0, p, q, r).first == 2) ans++;
        }
      }
    }
    cout << ans << endl;
  }
  return 0;
}
