AT_npcapc_2024_d Two Box
Description
長さ $ 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 $ で割ったあまりを求めてください。
クエリを順に処理してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ Q $ $ A_1 $ $ A_2 $ $ \dots $ $ A_N $ $ x_1 $ $ y_1 $ $ x_2 $ $ y_2 $ $ \vdots $ $ x_Q $ $ y_Q $
Output Format
$ Q $ 行出力せよ。 $ i $ 行目には $ i $ 個目のクエリの答えを出力せよ。
Explanation/Hint
### 部分点
この問題には複数の部分点が設定されている。
- $ N \le 2000,M \le 10,Q = 1 $ を満たすデータセットに正解した場合 $ 10 $ 点が与えられる。
- $ Q = 1 $ を満たすデータセットに正解した場合追加で $ 10 $ 点が与えられる。
### Sample Explanation 1
$ 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 $ 通りです。
### Constraints
- $ 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 $