scx的记忆碎片
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

scx的记忆在二向箔的作用下坍塌成了碎片。

用心珍藏的回忆在时光里散落一地。

scx望着窗外的长夜,叶璃浅的身影若隐若现。

“终究是抓不住吗……”,scx喃喃低语道。

风起,雁南下。scx的记忆去往了远方……

在物理学家的帮助下,scx找到了破碎的记忆碎片。很显然,物理学家没办法拼凑记忆碎片。

昏黄的剪影在漫漫林径的尽头消失,只留下了一个数字 k ——那是scx最喜欢的数字。

scx的记忆碎片散落在漩涡中,scx可以通过指引之书找到他丢失的记忆。记忆碎片在指引之书的第 p 页中,其中 p 的数位和为 k

scx非常想找回记忆碎片,所以他想请你帮他找到可能存在记忆碎片的页码的数量。

指引之书有 1\times10^m 页(页码的范围是 1 \le p \le 1\times10^m),所以这对你来说应该并不是什么难事。

因为答案很大,所以你输出的答案应对 998244353 取模。

输入描述:

输入一行两个整数 m(1 \le m \le 1\times10^{18}),k(1 \le k \le 100),分别描述页码的范围和表示scx最喜欢的数字。

输出描述:

输出共一行,一个整数 n,表示所有可能存在着记忆碎片的页码的数量,对 998244353 取模。
示例1

输入

复制
4 2

输出

复制
10

说明

在第 1 组样例中,页码的范围是 1 \sim 10000,在这个范围内,2,11,20,101,110,200,1001,1010,1100,2000 的数位和都为 2

备注:

一个数的数位和指这个数的各位数码之和。例如,2501 的数位和等于 2+5+0+1=8