AT_arc232_d [ARC232D] Delete Different
Description
整数 $ N,K $ が与えられます.
$ 1 $ 以上 $ K $ 以下の整数からなる整数列 $ S $ に対し,スコア $ f(S) $ を次のように定義します.
- $ S $ のすべての要素が等しくなるまで次の操作を繰り返す.この操作を行う回数が $ f(S) $ である.
- 操作前の $ S $ の長さを $ |S| $ とする. $ 2 \leq i \leq |S| $ かつ $ S_{i-1} \ne S_i $ を満たすすべての $ i $ について, $ S $ の $ i $ 番目の要素を同時に削除する.削除せずに残った要素を元の順につなげて,新しい $ S $ とする.
$ 1 $ 以上 $ K $ 以下の整数からなる長さ $ N $ の整数列 $ S $ は $ K^N $ 通り存在します. そのすべてに対する $ f(S) $ の総和を $ 998244353 $ で割った余りを求めてください.
Input Format
入力は以下の形式で標準入力から与えられる.
> $ N $ $ K $
Output Format
答えを出力せよ.
Explanation/Hint
### Sample Explanation 1
$ (1,1,1),(2,2,2) $ のスコアは $ 0 $ で, $ (1,2,2),(2,1,1) $ のスコアは $ 2 $ です.その他 $ 4 $ 通りの整数列のスコアは $ 1 $ なので,総和は $ 8 $ です.
### Sample Explanation 2
例えば, $ S=(1,2,2,2,1,2) $ は次のように変化するので,スコアは $ 3 $ です.
$ (1,2,2,2,1,2) \to (1,2,2) \to (1,2) \to (1) $
### Constraints
- $ 2 \leq N \leq 100 $
- $ 2 \leq K < 998244353 $
- 入力はすべて整数である.