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` のみからなる文字列である