H. 乐谱
每个测试点时间限制:1 秒
内存限制:1024 MB
(图片由 ChatGPT 4o 生成)
爱丽丝喜欢唱歌。作为一个歌唱爱好者,爱丽丝听过无数首歌,并且多次尝试演唱它们。然而,有时某些歌曲会让她感到无聊。经过一些研究,爱丽丝认为,这是因为虽然她选择的歌曲各不相同,但出于她本能的偏好,它们在音乐上总是彼此相似。
为了彻底分析这一点,爱丽丝决定研究这些歌曲的乐谱。为了方便,爱丽丝将一首长度为 n 的歌曲表示为一个整数序列 a1,a2,…,an,其中 ai 是第 i 个音符的音高。然后她定义了歌曲之间的音乐等价性。
两首长度为 n 的歌曲 a1,a2,…,an 和 b1,b2,…,bn 是音乐等价的,如果对于所有 1≤i<n,(ai,ai+1) 与 (bi,bi+1) 具有相同的音高关系。更具体地说,(ai,ai+1) 与 (bi,bi+1) 具有相同的音高关系,如果满足以下条件之一:
- ai<ai+1 且 bi<bi+1,
- ai=ai+1 且 bi=bi+1,或
- ai>ai+1 且 bi>bi+1。
例如,序列 (1,2,3,3,2) 与 (5,9,13,13,1) 是音乐等价的,而 (1,2,3,2,1) 与 (1,2,2,2,1) 则不是。
经过长时间的持续练习,爱丽丝能够演唱 [1,k] 范围内的任意音符。她想知道,如果将音乐等价的歌曲视为相同,那么长度为 n、且所有音符都在她演唱范围内的不同歌曲有多少种。
请帮助她计算这个数目。
由于答案可能很大,请输出答案对 998244353 取模后的结果。
输入
仅一行包含两个整数 n,k。
- 1≤n≤106
- 1≤k≤109
输出
输出不同歌曲的数量对 998244353 取模后的结果。
示例
输入
3 2
输出
7
输入
5 3
输出
67