[R14E]密码 - 代码源竞赛平台

时空限制

1S/512M

题目描述

定义一个合法密码由 nn 个 1∼k1\sim k 之间的数字组成,且其中不能出现连续 kk 位相同的情况。

比如当 n=5n=5 且 k=3k=3 时,3211132111 就不是一个合法密码,因为密码的第 3∼53\sim 5 位都是 11;而 3232332323 是一个合法密码。

已知密码的一部分,求有多少个合法密码满足已知信息,对 998244353998244353 取模。

格式

输入格式

第一行包含两整数 n,kn,k,分别表示密码的长度和每位数字的范围。

第二行包含一个长度为 nn 的字符串 SS,其中 Si=0S_i=0 表示第 ii 位密码未知,否则表示密码的第 ii 位为 SiS_i。

输出格式

输出一个整数表示满足已知信息的合法密码的数量,对 998244353998244353 取模。

样例

样例输入 #1

5 3
00303

样例输出 #1

16

样例解释 #1

满足已知信息的合法密码共有 1616个:1131311313、1132311323、1231312313、1232312323、1331313313、1332313323、2131321313、2132321323、2231322313、2232322323、2331323313、2332323323、3131331313、3132331323、3231332313、3232332323。

样例输入 #2

3 2
102

样例输出 #2

0

样例输入 #3

6 6
100600

样例输出 #3

1296

数据规模

对于 20%20\% 的数据,k=2k = 2。

对于 60%60\% 的数据,k≤5k \leq 5。

对于 100%100\% 的数据,1≤n≤1061\leq n \leq 10^6,2≤k≤92\leq k\leq 9。数据保证 SS 仅由 0∼k0\sim k 的数字组成。