#include <iostream>
#include <bits/stdc++.h>
using namespace std;
long long numOfSubsequences(string s) {
int n = s.size();
long long l=0;
long long lc=0;
long long lct=0;
vector<long long> prefix_lc(n,0);
vector<long long> prefix_l(n,0);
for(int i=0;i<n;i++){
if(s[i]=='L'){
l++;
prefix_l[i];
}
else if(s[i]=='C'){
lc=lc+l;
}
else if(s[i]=='T'){
lct=lct+lc;
}
prefix_l[i]=l;
prefix_lc[i]=lc;
}
vector<long long> suffix_t(n+1,0);
vector<long long> suffix_ct(n+1,0);
long long ans_3 = lct+prefix_lc[n-1];
long long t=0;
long long ct=0;
for(int i=n-1;i>=0;i--){
if(s[i]=='T'){
t++;
}
else if(s[i]=='C'){
ct=ct+t;
}
suffix_t[i]=t;
suffix_ct[i]=ct;
}
long long ans_1 = lct+suffix_ct[0];
long long ans_2=0;
for(int i=1;i<n;i++){
ans_2=max(ans_2,lct+(prefix_l[i-1]*suffix_t[i]));
}
return max(ans_1,max(ans_2,ans_3));
}
int main() {
string s;
cin >> s;
cout << numOfSubsequences(s);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmxvbmcgbG9uZyBudW1PZlN1YnNlcXVlbmNlcyhzdHJpbmcgcykgewogICAgICAgIGludCBuID0gcy5zaXplKCk7CiAgICAgICAgbG9uZyBsb25nIGw9MDsKICAgICAgICBsb25nIGxvbmcgbGM9MDsKICAgICAgICBsb25nIGxvbmcgbGN0PTA7CiAgICAgICAgdmVjdG9yPGxvbmcgbG9uZz4gcHJlZml4X2xjKG4sMCk7CiAgICAgICAgdmVjdG9yPGxvbmcgbG9uZz4gcHJlZml4X2wobiwwKTsKCiAgICAgICAgZm9yKGludCBpPTA7aTxuO2krKyl7CiAgICAgICAgICAgIGlmKHNbaV09PSdMJyl7CiAgICAgICAgICAgICAgICBsKys7CiAgICAgICAgICAgICAgICBwcmVmaXhfbFtpXTsKCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZihzW2ldPT0nQycpewogICAgICAgICAgICAgICAgbGM9bGMrbDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHNbaV09PSdUJyl7CiAgICAgICAgICAgICAgICBsY3Q9bGN0K2xjOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHByZWZpeF9sW2ldPWw7CiAgICAgICAgICAgIHByZWZpeF9sY1tpXT1sYzsKICAgICAgICB9CgogICAgICAgIHZlY3Rvcjxsb25nIGxvbmc+IHN1ZmZpeF90KG4rMSwwKTsKICAgICAgICB2ZWN0b3I8bG9uZyBsb25nPiBzdWZmaXhfY3QobisxLDApOwoKICAgICAgICBsb25nIGxvbmcgYW5zXzMgPSBsY3QrcHJlZml4X2xjW24tMV07CgogICAgICAgIGxvbmcgbG9uZyB0PTA7CiAgICAgICAgbG9uZyBsb25nIGN0PTA7CgoKICAgICAgICBmb3IoaW50IGk9bi0xO2k+PTA7aS0tKXsKICAgICAgICAgICAgaWYoc1tpXT09J1QnKXsKICAgICAgICAgICAgICAgIHQrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmKHNbaV09PSdDJyl7CiAgICAgICAgICAgICAgICBjdD1jdCt0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN1ZmZpeF90W2ldPXQ7CiAgICAgICAgICAgIHN1ZmZpeF9jdFtpXT1jdDsgICAgCiAgICAgICAgfQoKICAgICAgICBsb25nIGxvbmcgYW5zXzEgPSBsY3Qrc3VmZml4X2N0WzBdOwogICAgICAgIGxvbmcgbG9uZyBhbnNfMj0wOwoKICAgICAgICBmb3IoaW50IGk9MTtpPG47aSsrKXsKICAgICAgICAgICAgYW5zXzI9bWF4KGFuc18yLGxjdCsocHJlZml4X2xbaS0xXSpzdWZmaXhfdFtpXSkpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIG1heChhbnNfMSxtYXgoYW5zXzIsYW5zXzMpKTsKfQoKaW50IG1haW4oKSB7CiAgICBzdHJpbmcgczsKICAgIGNpbiA+PiBzOwoKICAgIGNvdXQgPDwgbnVtT2ZTdWJzZXF1ZW5jZXMocyk7CgogICAgcmV0dXJuIDA7Cn0=