人 \(1,2,\dots, N\) がいます。 人 \(i\) に数列を渡すと、渡した数列に対して「\(M\) 以下の正整数のうち \(A_i\) でないものを \(1\) つ選び、数列の末尾に追加する」という操作をちょうど \(B_i\) 回行ってできる数列と交換してくれます。
\(Q\) 個のクエリが与えられます。 \(q\) 番目のクエリでは正整数 \(L_q, R_q\) が与えられるので、以下の問いに答えてください。
入力は以下の形式で標準入力から与えられます。
| \(N~M\) | |
| \(A_1~A_2~\dots~A_N\) | |
| \(B_1~B_2~\dots~B_N\) | |
| \(Q\) | |
| \(\mathrm{query}_{1}\) | |
| \(\mathrm{query}_{2}\) | |
| \(\vdots\) | |
| \(\mathrm{query}_{Q}\) |
\(q\) 番目のクエリ \(\mathrm{query}_q\) は以下の形式で与えられます。
| \(L_q~R_q\) |
入力は以下の制約をすべて満たします。
\(Q\) 行出力してください。
\(q\) 行目に \(\mathrm{query}_q\) に対する答えを出力してください。
以下の追加制約を満たすデータセットに正解した場合、部分点が与えられます。
2 31 21 111 2
3
4 10031 41 59 261 1 1 141 11 21 31 4
4919 485172 48029819 761972845
Sample1: あり得る \(X\) は \((2, 1), (2, 3), (3, 1), (3, 3)\) の \(4\) 通りです。 \(X\) に含まれる要素の総和を \(M=3\) で割ったあまりはそれぞれ \(0,2,1,0\) となり、その総和は \(3\) です。