#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;
}