AT_abc447_d [ABC447D] Take ABC 2
Description
`A` , `B` , `C` の $ 3 $ 種類の文字のみからなる文字列 $ S $ が与えられます。
操作を以下のように定義します。
> $ 1 \le i \lt j \lt k \le |S| $ かつ $ S_i = $ `A` , $ S_j = $ `B` , $ S_k = $ `C` を満たす $ (i, j, k) $ の組を選び、 $ S $ の $ i, j, k $ 文字目を取り除く。残った文字を元の順序を保ったまま左に詰める。
文字列 $ S $ に対して最大で何回操作を行うことができるかを求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ S $
Output Format
答えを出力せよ。
Explanation/Hint
### Sample Explanation 1
以下のように操作をすることで $ 2 $ 回操作できます。
- `ABACBCC` に対して $ (i, j, k) = (1, 2, 7) $ として操作する。残った文字列は `ACBC` となる。
- `ACBC` に対して $ (i, j, k) = (1, 3, 4) $ として操作する。残った文字列は `C` となる。
$ 3 $ 回以上操作することはできないため、答えは $ 2 $ となります。よって $ 2 $ と出力してください。
### Constraints
- $ 1 \le |S| \le 10 ^{6} $
- $ S $ は `A` , `B` , `C` のみからなる文字列である