#include <bits/stdc++.h> // NeOWami
using namespace std;
#define ft first
#define sc second
const int N = 1e6 + 5;
const int inf = 1e8;
string s;
int dp[N][4], curID = 0, curPos = 0, ans = 1;
inline int calc(int x, int y) {
if (x == -inf || y == -inf) return -inf;
return x + y;
}
inline void ckmax(int &u, int v) {
if (u < v) u = v;
}
int DP() {
int id = curID++;
// cerr << curPos << " " << id << '\n';
if (s[curPos] == 'S') {
dp[id][0] = dp[id][1] = dp[id][2] = dp[id][3] = -inf;
curPos++; int l = DP();
curPos++; int r = DP();
// cerr << id << ": " << l << " " << r << '\n';
ckmax(dp[id][0], calc(dp[l][0], dp[r][0]));
ckmax(dp[id][0], calc(dp[l][2], dp[r][1]) - 1);
ckmax(dp[id][1], calc(dp[l][1], dp[r][0]));
ckmax(dp[id][1], calc(dp[l][3], dp[r][1]) - 1);
ckmax(dp[id][2], calc(dp[l][0], dp[r][2]));
ckmax(dp[id][2], calc(dp[l][2], dp[r][3]) - 1);
ckmax(dp[id][3], calc(dp[l][1], dp[r][2]));
ckmax(dp[id][3], calc(dp[l][3], dp[r][3]) - 1);
}
else if (s[curPos] == 'P') {
dp[id][0] = dp[id][1] = dp[id][2] = dp[id][3] = -inf;
curPos++; int l = DP();
curPos++; int r = DP();
// cerr << id << ": " << l << " " << r << '\n';
ckmax(dp[id][0], calc(dp[l][0], dp[r][0]));
ckmax(dp[id][1], calc(dp[l][1], dp[r][1]) - 1);
ckmax(dp[id][2], calc(dp[l][2], dp[r][2]) - 1);
ckmax(dp[id][3], calc(dp[l][3], dp[r][3]) - 2);
}
else {
dp[id][0] = 0;
dp[id][1] = 1;
dp[id][2] = 1;
dp[id][3] = -inf;
}
// cerr << " -> " << id << ": " << dp[id][0] << " " << dp[id][1] << " " << dp[id][2] << " " << dp[id][3] << "\n";
return id;
}
signed main() {
cin.tie(NULL)->sync_with_stdio(false);
if(ifstream("INDEP.inp")) {
freopen("INDEP.inp", "r", stdin);
freopen("INDEP.out", "w", stdout);
}
cin >> s;
int id = DP();
for (int i = 0; i < 4; i++) ckmax(ans, dp[id][i]);
cout << ans;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IC8vIE5lT1dhbWkKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgZnQgZmlyc3QKI2RlZmluZSBzYyBzZWNvbmQKY29uc3QgaW50IE4gPSAxZTYgKyA1Owpjb25zdCBpbnQgaW5mID0gMWU4OwpzdHJpbmcgczsKaW50IGRwW05dWzRdLCBjdXJJRCA9IDAsIGN1clBvcyA9IDAsIGFucyA9IDE7CmlubGluZSBpbnQgY2FsYyhpbnQgeCwgaW50IHkpIHsKICAgIGlmICh4ID09IC1pbmYgfHwgeSA9PSAtaW5mKSByZXR1cm4gLWluZjsKICAgIHJldHVybiB4ICsgeTsKfQppbmxpbmUgdm9pZCBja21heChpbnQgJnUsIGludCB2KSB7CiAgICBpZiAodSA8IHYpIHUgPSB2Owp9CmludCBEUCgpIHsKICAgIGludCBpZCA9IGN1cklEKys7CiAgICAvLyBjZXJyIDw8IGN1clBvcyA8PCAiICIgPDwgaWQgPDwgJ1xuJzsKICAgIGlmIChzW2N1clBvc10gPT0gJ1MnKSB7CiAgICAgICAgZHBbaWRdWzBdID0gZHBbaWRdWzFdID0gZHBbaWRdWzJdID0gZHBbaWRdWzNdID0gLWluZjsKICAgICAgICBjdXJQb3MrKzsgaW50IGwgPSBEUCgpOyAKICAgICAgICBjdXJQb3MrKzsgaW50IHIgPSBEUCgpOyAgICAgCiAgICAgICAgLy8gY2VyciA8PCBpZCA8PCAiOiAiIDw8IGwgPDwgIiAiIDw8IHIgPDwgJ1xuJzsKICAgICAgICAKICAgICAgICBja21heChkcFtpZF1bMF0sIGNhbGMoZHBbbF1bMF0sIGRwW3JdWzBdKSk7CiAgICAgICAgY2ttYXgoZHBbaWRdWzBdLCBjYWxjKGRwW2xdWzJdLCBkcFtyXVsxXSkgLSAxKTsKICAgIAogICAgICAgIGNrbWF4KGRwW2lkXVsxXSwgY2FsYyhkcFtsXVsxXSwgZHBbcl1bMF0pKTsKICAgICAgICBja21heChkcFtpZF1bMV0sIGNhbGMoZHBbbF1bM10sIGRwW3JdWzFdKSAtIDEpOwogICAgCiAgICAgICAgY2ttYXgoZHBbaWRdWzJdLCBjYWxjKGRwW2xdWzBdLCBkcFtyXVsyXSkpOwogICAgICAgIGNrbWF4KGRwW2lkXVsyXSwgY2FsYyhkcFtsXVsyXSwgZHBbcl1bM10pIC0gMSk7CiAgICAKICAgICAgICBja21heChkcFtpZF1bM10sIGNhbGMoZHBbbF1bMV0sIGRwW3JdWzJdKSk7CiAgICAgICAgY2ttYXgoZHBbaWRdWzNdLCBjYWxjKGRwW2xdWzNdLCBkcFtyXVszXSkgLSAxKTsKICAgIH0KICAgIGVsc2UgaWYgKHNbY3VyUG9zXSA9PSAnUCcpIHsKICAgICAgICBkcFtpZF1bMF0gPSBkcFtpZF1bMV0gPSBkcFtpZF1bMl0gPSBkcFtpZF1bM10gPSAtaW5mOwogICAgICAgIGN1clBvcysrOyBpbnQgbCA9IERQKCk7CiAgICAgICAgY3VyUG9zKys7IGludCByID0gRFAoKTsKICAgICAgICAvLyBjZXJyIDw8IGlkIDw8ICI6ICIgPDwgbCA8PCAiICIgPDwgciA8PCAnXG4nOwogICAgICAgIAogICAgICAgIGNrbWF4KGRwW2lkXVswXSwgY2FsYyhkcFtsXVswXSwgZHBbcl1bMF0pKTsKICAgICAgICBja21heChkcFtpZF1bMV0sIGNhbGMoZHBbbF1bMV0sIGRwW3JdWzFdKSAtIDEpOwogICAgICAgIGNrbWF4KGRwW2lkXVsyXSwgY2FsYyhkcFtsXVsyXSwgZHBbcl1bMl0pIC0gMSk7CiAgICAgICAgY2ttYXgoZHBbaWRdWzNdLCBjYWxjKGRwW2xdWzNdLCBkcFtyXVszXSkgLSAyKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgIGRwW2lkXVswXSA9IDA7CiAgICAgICAgZHBbaWRdWzFdID0gMTsKICAgICAgICBkcFtpZF1bMl0gPSAxOwogICAgICAgIGRwW2lkXVszXSA9IC1pbmY7CiAgICB9CiAgICAvLyBjZXJyIDw8ICIgLT4gIiA8PCBpZCA8PCAiOiAiIDw8IGRwW2lkXVswXSA8PCAiICIgPDwgZHBbaWRdWzFdIDw8ICIgIiA8PCBkcFtpZF1bMl0gPDwgIiAiIDw8IGRwW2lkXVszXSA8PCAiXG4iOwogICAgcmV0dXJuIGlkOwp9CnNpZ25lZCBtYWluKCkgewogICAgY2luLnRpZShOVUxMKS0+c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGlmKGlmc3RyZWFtKCJJTkRFUC5pbnAiKSkgewogICAgICAgIGZyZW9wZW4oIklOREVQLmlucCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4oIklOREVQLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIGNpbiA+PiBzOwogICAgaW50IGlkID0gRFAoKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKSBja21heChhbnMsIGRwW2lkXVtpXSk7CiAgICBjb3V0IDw8IGFuczsKICAgIHJldHVybiAwOwp9