D - Two Box Editorial /

Time Limit: 6 sec / Memory Limit: 1024 MiB

配点 : 100

問題文

長さ N の非負整数列 A=(A_1,A_2,\dots,A_N)Q 個のクエリが与えられます。i 個目のクエリは以下のような内容です。

  • A_{x_i}y_i に変更し、その後の A について以下の問題の答えを求める。

白い箱と黒い箱と 1 から M の番号が付いた M 個のボールがあります。始め、全てのボールは白い箱に入っています。

ここで、あなたは以下の操作を N 回繰り返します。

  • 1 \le x \le M を満たす整数 x を選ぶ。ボール x を今入っている箱からもう一方の箱に移動させる。

i 回目の操作終了後、黒い箱に入っているボールの番号は全て A_i 以下である必要があります。操作列としてあり得るものの個数を 998244353 で割ったあまりを求めてください。

クエリを順に処理してください。

制約

  • 1 \le N,Q \le \textcolor{red}{3 \times 10^4}
  • 1 \le M \le 15
  • 1 \le x_i \le N
  • 1 \le A_i,y_i \le M

部分点

この問題には複数の部分点が設定されている。

  • N \le 2000,M \le 10,Q = 1 を満たすデータセットに正解した場合 10 点が与えられる。
  • Q = 1 を満たすデータセットに正解した場合追加で 10 点が与えられる。

入力

入力は以下の形式で標準入力から与えられる。

N M Q
A_1 A_2 \dots A_N
x_1 y_1
x_2 y_2
\vdots
x_Q y_Q

出力

Q 行出力せよ。i 行目には i 個目のクエリの答えを出力せよ。


入力例 1

3 3 2
1 3 1
3 2
1 3

出力例 1

5
14

1 番目のクエリの際、A=(1,3,2) となっています。このとき、操作列としては例えば以下のようなものが考えられます。

  • x = 1 とする。白い箱から黒い箱にボール 1 が移動する。黒い箱の中にはボール 1 が入っている。
  • x = 3 とする。白い箱から黒い箱にボール 3 が移動する。黒い箱の中にはボール 1,3 が入っている。
  • x = 3 とする。黒い箱から白い箱にボール 1 が移動する。黒い箱の中にはボール 1 が入っている。

このほかに x の列として考えられるものは (1,1,1),(1,1,2),(1,2,1),(1,2,2)4 通りです。よって操作列としてあり得るのは 5 通りです。


入力例 2

6 8 1
3 8 7 7 1 6
1 4

出力例 2

2100

入力例 3

12 10 8
1 3 2 6 3 6 7 7 5 5 4 7
12 4
7 10
4 2
9 8
9 9
8 3
4 9
10 2

出力例 3

2741280
3007680
1503840
1916160
1972800
728640
1821600
621440