#L2128. 「HAOI2015」数字串拆分

    ID: 5037 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>动态规划字符串递推线性代数快速幂矩阵乘法

「HAOI2015」数字串拆分

题目描述

你有一个长度为 nn 的数字串。定义 f(S)f(S) 为将 SS 拆分成若干个 1m1 \sim m 的数的和的方案数。
比如 m=2m=2 时,f(4)=5f(4)=5,分别为

$$\begin{align} 4 &= 1+1+1+1 \\ &= 2+1+1 \\ &= 1+2+1 \\ &= 1+1+2 \\ &= 2+2 \end{align} $$

你可以将这个数字串分割成若干个数字(允许前导 00),将他们加起来,求 ff,并求和。
比如 g(123)=f(1+2+3)+f(1+23)+f(12+3)+f(123)g(123) = f(1+2+3) + f(1+23) + f(12+3) + f(123)
已知字符串和 mm 后,求答案对 9982443539982443537×17×223+17 \times 17 \times 2^{23}+1,一个质数)取模后的值。


输入格式

第一行输入一个字符串,第二行输入 mm


输出格式

仅输出一个数表示答案。


样例

输入

123
3

输出

394608467

数据范围与提示

  • 字符串长度 500\le 500
  • m5m \le 5