循环一求和

题目描述

Y 同学正在研究一种被称为“循环一(Repunit)”的特殊整数。 对于一个正整数 dd,长度为 dd 的循环一被定义为由 dd 个数字 11 组成的整数。形式化地,它可以表示为:

i=0d110i\sum_{i=0}^{d-1} 10^i

例如,长度为 1,2,31, 2, 3 的循环一分别为 1,11,1111, 11, 111

现在,Y 同学给定了两个正整数 NNMM。他可以从所有长度至少为 11 且不超过 MM 的循环一中,任意挑选出 NN 个(可以重复挑选相同的循环一),并将这 NN 个整数相加求和。

Y 同学想要知道,通过上述方式,他一共可以构造出多少种不同的整数和? 由于这个数量可能非常大,请你帮他计算出最终结果,并输出其对 998244353998244353 取模后的值。

输入格式

第一行包含两个由空格分隔的正整数 NNMM

输出格式

输出一行一个整数,表示能够构造出的不同整数的数量对 998244353998244353 取模后的结果。

样例

样例输入 #1

2 3

样例输出 #1

6

样例输入 #2

10 10

样例输出 #2

92378

样例输入 #3

12345 123456789

样例输出 #3

133394021

数据范围与约定

对于 100%100\% 的数据,保证 1N1051 \le N \le 10^51M1091 \le M \le 10^9

子任务编号 分值 NN \le MM \le 特殊性质
1 20 55
2 30 10001000
3 50 10510^5 10910^9