#P1568. 不同(difference)

不同(difference)

题目描述

小 C 有一个长度为 nn 的序列 aa,其中 ai[1,k]a_i\in [1,k],并且 1k1\sim kaa 中都至少出现了一次。

小 C 通过序列 aa 计算出来另外一个序列 bbbi=minj[1,n],ajaiijb_i=\min_{j\in[1,n],a_j\ne a_i}|i-j|,即 aia_i 到最近的不同的数字 aja_j 的距离。

小 C 想要知道,对于所有的序列 aa,能够计算出多少个不同的序列 bb?由于答案可能很大,只需要输出答案对 998244353998244353 取模后的值。

输入格式

输入的第一行包含两个整数 n,kn,k

输出格式

共一行,输出一个整数。

样例输入 #1

2 2

样例输出 #1

1

样例输入 #2

6 5

样例输出 #2

3

数据范围

样例 1 解释

只有 b1=1,b2=1b_1=1,b_2=1 一种可能的序列 bb

  • 对于 20%20\% 的数据,保证 n,k5n,k\le 5
  • 对于 40%40\% 的数据,保证 n500n\le 500
  • 对于 60%60\% 的数据,保证 n5000n\le 5000
  • 对于另 20%20\% 的数据,保证 k=2k=2
  • 对于 100%100\% 的数据,保证 1n2×1051\le n\le 2\times 10^52kmin(n,10)2\le k\le \min(n,10)