题目描述
在数轴上有一个棋子。初始时,棋子位于点 0。你可以进行任意次数的移动;每次移动会使棋子的坐标增加某个正整数(称为这次移动的长度)。第一次移动的长度必须能被 k 整除,第二次移动的长度必须能被 k+1 整除,第三次移动的长度必须能被 k+2 整除,依此类推。
例如,如果 k=2,则移动序列可能如下:$0 \rightarrow 4 \rightarrow 7 \rightarrow 19 \rightarrow 44$,因为 4−0=4 能被 2=k 整除,7−4=3 能被 3=k+1 整除,19−7=12 能被 4=k+2 整除,44−19=25 能被 5=k+3 整除。
给定两个正整数 n 和 k。你的任务是,对于每个 x∈[1,n],计算从 0 出发到达点 x 的方案数。方案数可能非常大,请对 998244353 取模输出。若两种方案经过的位置集合不同,则认为它们是不同的方案。
输入格式
输入的第一行包含两个整数 n 和 k(1≤k≤n≤2⋅105)。
输出格式
输出 n 个整数,第 i 个数表示从 0 出发到达点 i 的方案数,对 998244353 取模。
8 1
1 1 2 2 3 4 5 6
10 2
0 1 0 1 1 1 1 2 2 2
说明/提示
我们来看第一个例子:
到达点 1 的方案:[0,1];
到达点 2 的方案:[0,2];
到达点 3 的方案:[0,1,3],[0,3];
到达点 4 的方案:[0,2,4],[0,4];
到达点 5 的方案:[0,1,5],[0,3,5],[0,5];
到达点 6 的方案:[0,1,3,6],[0,2,6],[0,4,6],[0,6];
到达点 7 的方案:[0,2,4,7],[0,1,7],[0,3,7],[0,5,7],[0,7];
到达点 8 的方案:[0,3,5,8],[0,1,5,8],[0,2,8],[0,4,8],[0,6,8],[0,8]。