#P1042. 鲁棒性过滤器设计

鲁棒性过滤器设计

题目描述

某种高端音频处理设备中包含 kk 级串联的信号过滤器。每级过滤器都有一个正整数特征值 aia_i。当强度为 xxxx 为非负整数)的音频信号通过一个特征值为 yy 的过滤器时,输出的新信号强度会自动衰减为 xmodyx \bmod y

也就是说,如果一个过滤器序列的特征值依次为 [a1,a2,,ak][a_1, a_2, \dots, a_k],那么初始强度为 xx 的信号在通过全部 kk 级过滤器后,最终的输出强度为:

$$(((x \bmod a_1) \bmod a_2) \dots \bmod a_{k - 1}) \bmod a_k$$

工程师在设计时,要求该过滤器序列必须具备无序鲁棒性。即对于任意给定的初始信号强度 xx,无论将这 kk 个过滤器以何种顺序重新排列(即换用从 11kk 的任意排列 pp 重新组合),最终输出的信号强度都完全相同

现在,给定允许选择的过滤器特征值上限 nn 以及级数 kk。你需要计算出,一共有多少种不同的特征值序列 [a1,a2,,ak][a_1, a_2, \dots, a_k] 能够同时满足以下两个条件:

  1. 序列特征值严格递增,即 1a1<a2<<akn1 \le a_1 < a_2 < \dots < a_k \le n
  2. 该序列具备无序鲁棒性。

由于符合条件的方案数可能非常庞大,你只需要输出最终的方案数对 998244353998244353 取模后的结果。

输入格式

输入仅有一行,包含两个正整数 nnkk1n,k51051 \le n, k \le 5 \cdot 10^5),分别表示特征值的最大可能上限以及过滤器的总级数。

输出格式

输出一个整数,表示满足上述所有条件的特征值序列的总数量,答案对 998244353998244353 取模。

样例 1

7 3
16

样例 2

3 7
0

样例 3

1337 42
95147305

样例 4

1 1
1

样例 5

500000 1
500000

样例说明

数据范围

  • 对于 20%20\% 的数据,1nk51 \le n、k\leq 5
  • 对于 100%100\% 的数据,1nk51051 \le n、k\leq 5 \cdot 10^5