#include <iostream>
#include <stack>
#include <string>
using namespace std;

void prefixKMP(string T, int f[]){
    int m = T.length();
    int k;
    f[0] = -1;
    for(int i = 1; i<m; i++){
        k=f[i-1];
        while(k>=0){
            if(T[k] == T[i-1]){
                break;
            } else{
                k = f[k];
            }
        }
        f[i] = k+1;
    }
}

void KMPcheck(string T, string S){
	bool fnd = false;
	string z;
    int m = T.length();
    int n = S.length();
    int tmp[m];
    int z = 0;

    prefixKMP(T, tmp);
    int i=0;
    int k=0;
    while(i<n){
        if(k==-1){
            i++;
            k=0;
        } 
        
        else if(S[i]==T[k]){
            i++;
            k++;
            if(k==m){
            	fnd=true;
				for(int j=i; i<i-m; i--){
 					S.pop();
 				}
            }
        } else{
            k = tmp[k];
        }
    }
    while(fnd){
 		KMPcheck(T, S);
    }
    cout<<S.length();

}
int main()
{
string S, T;

cin>>S;
for(int i=0;i<F.length(), i++){
	S[i]=F[i];
}
T="ST";
KMPcheck(T, S);

}
