AT_arc168_c [ARC168C] Swap Characters

Description

[problemUrl]: https://atcoder.jp/contests/arc168/tasks/arc168_c `A`, `B`, `C` からなる長さ $ N $ の文字列 $ S $ が与えられます. 以下の操作を $ 0 $ 回以上 $ K $ 回以下行うことを考えます. - $ S $ 内の $ 2 $ 文字を自由に選び,入れ替える. 操作後の $ S $ としてあり得る文字列が何通りあるかを $ 998244353 $ で割ったあまりを求めてください.

Input Format

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

Output Format

答えを出力せよ.

Explanation/Hint

### 制約 - $ 1\ \leq\ N\ \leq\ 250000 $ - $ 1\ \leq\ K\ \leq\ 100 $ - $ S $ は `A`, `B`, `C` からなる長さ $ N $ の文字列. - 入力される値はすべて整数. ### Sample Explanation 1 以下のように $ 4 $ 通りの文字列が得られます. - $ S= $`ABC` : $ 0 $ 回の操作を行えばよい. - $ S= $`BAC` : $ 1,2 $ 文字目を入れ替える操作を行えばよい. - $ S= $`CBA` : $ 1,3 $ 文字目を入れ替える操作を行えばよい. - $ S= $`ACB` : $ 2,3 $ 文字目を入れ替える操作を行えばよい.