小橙的好序列
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}给定两个整数 nk。称一个长度为 n+1 的整数序列 a_0,a_1,a_2,\dots,a_n 是「好序列」,当且仅当满足以下条件:
\hspace{23pt}\bullet\,a_0=0
\hspace{23pt}\bullet\,对任意索引 i\in[1,n],都有 |a_i-a_{i-1}|\leq k
\hspace{15pt}小橙想知道,一共有多少个不同的「好序列」,由于答案可能很大,请对 998\,244\,353 取模后输出。

【名词解释】
\hspace{15pt}|x|:表示 x 的绝对值。

输入描述:

\hspace{15pt}第一行输入两个整数 n,k\left(1\leq n,k\leq 10^6\right),表示好序列的参数。

输出描述:

\hspace{15pt}输出一个整数,表示好序列个数对 998\,244\,353 取模后的结果。
示例1

输入

复制
2 1

输出

复制
9

说明

\hspace{15pt}在这个样例中,满足条件的「好序列」有:
\hspace{23pt}\bullet\,\{0,-1,-2\}
\hspace{23pt}\bullet\,\{0,-1,-1\}
\hspace{23pt}\bullet\,\{0,-1,0\}
\hspace{23pt}\bullet\,\{0,0,-1\}
\hspace{23pt}\bullet\,\{0,0,0\}
\hspace{23pt}\bullet\,\{0,0,1\}
\hspace{23pt}\bullet\,\{0,1,0\}
\hspace{23pt}\bullet\,\{0,1,1\}
\hspace{23pt}\bullet\,\{0,1,2\}
示例2

输入

复制
6 8

输出

复制
24137569