AT_arc218_f2 [ARC218F2] Buckets
Description
**F 問題と F2 問題は同じ問題ですが、 $ M $ の制約が異なります。F2 問題では $ M = 5 $ です。**
正整数 $ M $ が与えられます。ここで、以下の問題を考えます。
> **Bucket**正整数 $ N $ と長さ $ N $ の非負整数列 $ A=(A_1,A_2,\dots,A_N),B=(B_1,B_2,\dots,B_N) $ が与えられます。 $ A,B $ の要素は全て $ 0 $ 以上 $ M $ 以下です。
>
> $ 1 $ から $ N $ の番号が付いた $ N $ 個のバケツがあります。全てのバケツには水が $ M $ L まで入ります。始め、バケツ $ i $ には $ A_i $ L の水が入っています。
>
> あなたは以下の操作を好きな回数行うことが出来ます。
>
> - 異なる $ 2 $ 個のバケツ $ i,j $ を選ぶ。以下の条件を両方満たしている間、バケツ $ i $ からバケツ $ j $ に水を移し続ける。
> - バケツ $ i $ にまだ水が残っている。
> - バケツ $ j $ に入っている水の量が $ M $ L 未満である。
>
> あなたの目標は、全ての $ i $ についてバケツ $ i $ に水が $ B_i $ L 入っている状況にすることです。目標を達成することが出来るか判定してください。
$ M+1 $ 行 $ M+1 $ 列の非負整数行列 $ X=(X_{i,j})(0 \le i,j \le M) $ が与えられます。以下のクエリを $ Q $ 回処理してください。
- $ 0 \le i,j \le M $ を満たす非負整数 $ i,j,Y $ が与えられる。 $ X_{i,j} $ を $ Y $ に変更する。その後、以下の手順で非負整数列 $ A,B $ を得る。
- 非負整数列 $ A,B $ を空数列で初期化する。
- 以下を $ i = 0,1,\dots,M $ の順に行う。
- 以下を $ j = 0,1,\dots,M $ の順に行う。
- $ A $ の末尾に $ i $ を、 $ B $ の末尾に $ j $ を追加する操作を $ X_{i,j} $ 回行う。
- 長さ $ N = \sum_{i=0}^{M} \sum_{j=0}^{M} X_{i,j} $ の非負整数列 $ A,B $ について **Bucket** を解いたときの答えを求めよ。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ M $ $ Q $ $ X_{0,0}\ X_{0,1}\ \dots\ X_{0,M} $ $ X_{1,0}\ X_{1,1}\ \dots\ X_{1,M} $ $ \vdots $ $ X_{M,0}\ X_{M,1}\ \dots\ X_{M,M} $ $ \mathrm{query}_1 $ $ \mathrm{query}_2 $ $ \vdots $ $ \mathrm{query}_Q $
各クエリは以下の形式で与えられる。
> $ i\ j\ Y $
Output Format
$ Q $ 行出力せよ。 $ i $ 行目には $ \mathrm{query}_i $ において、目標を達成することが出来るならば `Yes` を、出来ないならば `No` を出力せよ。
Explanation/Hint
### Sample Explanation 1
それぞれのクエリ時点で得られる $ A,B $ は以下の通りです。
- $ 1 $ 番目のクエリを処理する時点では、 $ A=(0,3,3),B=(0,1,5) $
- $ 2 $ 番目のクエリを処理する時点では、 $ A=(0,3,3,4),B=(0,1,5,0) $
- $ 3 $ 番目のクエリを処理する時点では、 $ A=(0,1,3,3,4),B=(0,5,1,5,0) $
### Constraints
- **$ M = 5 $**
- $ 1 \le Q \le 10^6 $
- $ 0 \le X_{i,j},Y \le 10^{17} $
- $ 0 \le i,j \le M $
- 全ての時点で $ \sum_{i=0}^{M} \sum_{j=0}^{M} X_{i,j} \ge 1 $
- 入力は全て整数