# https://atcoder.jp/contests/agc005/tasks/agc005_a

# 'ST'を抜け。
# 文字列を連長圧縮、先頭は必ずSを、最後には必ずTになるようにする(0個を許容)
# そしたらSTSTSTSTの文字数なので二個ずつabs(n_s-n_t)を取っていけばよい。ただしTが先になくなるときは、Sの余りを次のSに移し替えなければ行けない


def run_length_encoding(s):
    '''
    連長圧縮を行う
    s ... iterable object e.g. list, str 
    return
    ----------
    s_composed,s_num,s_idx
    それぞれ、圧縮後の文字列、その文字数、その文字が始まるidx
    '''
    s_composed = []
    s_sum = []
    s_idx = [0]
    pre = s[0]
    cnt = 1
    for i, ss in enumerate(s[1:], start=1):
        if pre == ss:
            cnt += 1
        else:
            s_sum.append(cnt)
            s_composed.append(pre)
            s_idx.append(i)
            cnt = 1
            pre = ss
    s_sum.append(cnt)
    s_composed.append(pre)
    # assert len(s_sum) == len(s_composed)
    return s_composed, s_sum, s_idx


X = input()
X_composed, X_sum, X_idx = run_length_encoding(X)
if X_composed[0] == 'T':
    X_composed.insert(0, 'S')
    X_sum.insert(0, 0)
    X_idx.insert(0, None)
if X_composed[-1] == 'S':
    X_composed.append('T')
    X_sum.append(0)
    X_idx.append(None)

S_stock = 0  # Sの余り
ans = 0
for s, t in zip(X_sum[::2], X_sum[1::2]):
    S_stock += s
    if S_stock > t:
        S_stock -= t
    else:
        ans += t - s
        S_stock = 0

ans += S_stock

print(ans)
# print(X_composed)
# print(X_sum)
# print(X_idx)
