#ARC170C. 前缀 MEX 序列

前缀 MEX 序列

前缀 MEX 序列

时间限制:2s
空间限制:1024MB

题目描述

对于一个有限非负整数序列 XX,定义 mex⁡(X)\operatorname{mex}(X) 为没有在 XX 中出现的最小非负整数。例如 mex⁡(0,0,1,3)=2\operatorname{mex}(0,0,1,3)=2,空序列的 MEX 为 00。

给定一个长度为 NN 的 0101 序列 S=(S1,S2,…,SN)S=(S_1,S_2,\ldots,S_N)。求有多少个长度为 NN 的整数序列 A=(A1,A2,…,AN)A=(A_1,A_2,\ldots,A_N) 满足 0≤Ai≤M0\le A_i\le M,且对每个 ii:

  • 若 Si=1S_i=1,则 Ai=mex⁡(A1,A2,…,Ai−1)A_i=\operatorname{mex}(A_1,A_2,\ldots,A_{i-1});
  • 若 Si=0S_i=0,则 Ai≠mex⁡(A1,A2,…,Ai−1)A_i\ne\operatorname{mex}(A_1,A_2,\ldots,A_{i-1})。

答案对 998244353998244353 取模。

输入格式

第一行两个整数 N,MN,M。

第二行 NN 个整数 S1,S2,…,SNS_1,S_2,\ldots,S_N。

输出格式

输出答案对 998244353998244353 取模后的结果。

样例输入 1

4 2
1 0 0 1

样例输出 1

4

样例输入 2

10 1000000000
0 0 1 0 0 0 1 0 1 0

样例输出 2

587954969

数据范围

  • 1≤N≤50001\le N\le5000;
  • 0≤M≤1090\le M\le10^9;
  • Si∈{0,1}S_i\in\{0,1\}。
子任务编号 分值 特殊限制
1 8 N≤7N\le7 且 M≤5M\le5
2 16 N≤40N\le40 且 M≤15M\le15
3 12 对所有 ii 都有 Si=0S_i=0
4 36 M≥N−1M\ge N-1
5 28 无特殊限制