G - Koiwai Coffee
Flavor
6
s
1024
MB
1000
点
問題文
整数$N,K$と長さ$N$の数列 $A$が与えられます。
$A$の各値は、$1$以上$K$以下か、$-1$です。
このとき、以下の3つの条件を全て満たす長さ $N$ の数列 $B$ の個数を$998244353$で割った余りを求めてください。
- $A_i \neq -1$ ならば $B_i = A_i$
- $1 \leq i \leq N$ に対して、$1\leq B_i \leq K$
- ある $1\leq j \leq N$が存在して、長さ $j$ の数列$(B_1,\ldots,B_j)$, 長さ $N - j$ の数列$(B_{j + 1},\ldots,B_N)$ がともに回文になる。
ただし、「長さ $M$ の数列 $X$ が回文である」とは、「任意の$1\leq i \leq M$ に対し$X[i] = X[M + 1 - i]$」 が成立することをいいます(長さ $0$ の配列も回文です)。
制約
- $1\leq N \leq 10^5$
- $1\leq K \leq 10^5$
- $1\leq A_i \leq K$ または $A_i = -1$
入力
入力は以下の形式で標準入力から与えられます。
$N$ $K$
$A_1$ $A_2$ $\ldots$ $A_N$
出力
答えを1行に出力してください。
入力例 1
6 4
1 -1 1 -1 -1 4
出力例 1
23
たとえば、$B = (1, 3, 1, 4, 1, 4)$ は、$(1, 3, 1)$ と $(4, 1, 4)$ がともに回文であり、条件を満たします。条件をみたす $B$ は合わせて $23$ 個あります。
入力例 2
4 1
-1 1 -1 1
出力例 2
1
入力例 3
8 2
-1 -1 -1 -1 -1 -1 -1 -1
出力例 3
160