AT_pakencamp_2023_day1_j Wrapping

Description

整数列 $ p $ に対して、以下の操作の結果できる数列 $ q $ を $ f(p) $ と定義します。 - 空の数列 $ q $ を用意する。 - $ i=1,2,\ldots,|p| $ の順に、現在 $ q $ に $ p_i $ が存在しなければ、 $ q $ の末尾に $ p_i $ を挿入する。 正整数 $ N,K $ が与えられます。以下の条件を満たす長さ $ N $ の正整数列 $ a $ の個数を $ 998244353 $ で割った余りを求めてください。 - $ 1 \le a_i \le K\ (1 \le i \le N) $ - $ f(a) = f(\mathrm{rev}(a)) $ が成り立つ。ただし、 $ \mathrm{rev}(a) = (a_N,a_{N-1},\ldots,a_1) $ である。

Input Format

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

Output Format

答えを出力せよ。

Explanation/Hint

### Sample Explanation 1 条件を満たす $ a $ は $ (1,1,1),(1,2,1),(2,1,2),(2,2,2) $ の $ 4 $ 通りです。 ### Constraints - $ 1 \leq N,K \leq 2000 $ - 入力は全て整数