package main import "fmt" const MAX_LEN = 200000 func max(a int, b int) int { if a >= b { return a } else { return b } } func main() { var S string fmt.Scan(&S) scores := [MAX_LEN]int{} offset := map[rune]int{'A': 1, 'B': -1} for i, c := range S { scores[i] += offset[c] if i > 0 { scores[i] += scores[i-1] } } table := map[int]int{} ans := 0 for l := len(S) - 1; l >= 0; l-- { table[scores[l]] = max(table[scores[l]], l) r, ok := table[scores[l] - offset[rune(S[l])]] if ok { ans = max(ans, r - l + 1) } } fmt.Println(ans) }