AT_abc456_d [ABC456D] Not Adjacent 2

Description

`a`, `b`, `c` からなる文字列 $ S $ が与えられます。 $ S $ の空でない**部分列**であって、同じ文字が隣り合わないものの個数を $ 998244353 $ で割った余りを求めてください。 ただし、 $ 2 $ つの部分列が文字列として一致しても、取り出す位置が異なるならば区別するものとします。 部分列とは $ S $ の**部分列**とは、 $ S $ から $ 0 $ 文字以上を取り除いた後、残りの文字を元の順序で連結して得られる文字列のことをいいます。 例えば、`ab`, `ac` は `abc` の部分列ですが、`ca`, `bb` は `abc` の部分列ではありません。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ S $

Output Format

答えを出力せよ。

Explanation/Hint

### Sample Explanation 1 同じ文字が隣合わない部分列は以下の $ 11 $ 個です。 - `a` ( $ S $ の $ 1 $ 文字目) - `b` ( $ S $ の $ 2 $ 文字目) - `b` ( $ S $ の $ 3 $ 文字目) - `c` ( $ S $ の $ 4 $ 文字目) - `ab` ( $ S $ の $ 1,2 $ 文字目) - `ab` ( $ S $ の $ 1,3 $ 文字目) - `ac` ( $ S $ の $ 1,4 $ 文字目) - `bc` ( $ S $ の $ 2,4 $ 文字目) - `bc` ( $ S $ の $ 3,4 $ 文字目) - `abc` ( $ S $ の $ 1,2,4 $ 文字目) - `abc` ( $ S $ の $ 1,3,4 $ 文字目) $ 2 $ 番目と $ 3 $ 番目のもののように、文字列として一致しても、取り出す位置が異なるならば区別することに注意してください。 ### Sample Explanation 2 $ 998244353 $ で割った余りを出力してください。 ### Constraints - $ S $ は `a`, `b`, `c` からなる長さ $ 1 $ 以上 $ 3 \times 10^5 $ 以下の文字列