#include<bits/stdc++.h>
using namespace std;
using lli = long long;
#define rep(i,n) for(int i=0;i<n;i++)
template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; }

string s;

int main(void){
    cin >> s;
    stack<char> st;
    lli ans = s.size();
    rep(i, s.size()){
        if(s[i] == 'S'){
            st.push('S');
        }else if(s[i] == 'T'){
            if(!st.empty() && st.top() == 'S'){
                ans-=2;
                st.pop();
            }else st.push('T');
        }
    }
    cout << ans << endl;
    return 0;
}

#include <bits/stdc++.h>
using namespace std;

int main() {
    //
    string str;
    vector<int> vec(26, 0);

    cin >> str;

    if (str == "zyxwvutsrqponmlkjihgfedcba") {
        cout << -1;
    } else if (str.size() == 26) {
        string tmp = str;
        next_permutation(str.begin(), str.end());

        string kekka = "";
        for (int i = 0; i < str.size(); i++) {
            kekka += str.at(i);
            if (str.at(i) > tmp.at(i)) break;
        }

        cout << kekka;
    } else {
        for (int i = 0; i < str.size(); i++) vec.at(str.at(i) - 'a')++;

        for (int i = 0; i < vec.size(); i++) {
            if (vec.at(i) == 0) {
                cout << str << (char)(i + 'a');
                break;
            }
        }
    }

    //
}
