package main

// https://atcoder.jp/contests/agc005/tasks/agc005_a
// 入力 X: 偶数の長さの文字列で半分が'S', もう半分が'T'
// 出力: 所定のルールを適用した後の文字列長

import (
	"fmt"

	"github.com/golang-collections/collections/stack"
)

func solve(x string) {
	stk := stack.New()
	for _, c := range x {
		// if c == 'S' {
		// 	stk.Push(c)
		// 	continue
		// }
		if p, ok := stk.Peek().(rune); ok {
			if p == 'S' && c == 'T' {
				stk.Pop()
				continue
			}
		}
		stk.Push(c)
	}
	fmt.Printf("%v\n", stk.Len())
}

func main() {
	var x string
	fmt.Scanf("%s\n", &x)

	solve(x)
}
