#arc0284. [arc028_4]注文の多い高橋商店

[arc028_4]注文の多い高橋商店

問題文

高橋商店では NN 種類の商品が売られています。「どの種類の商品がいくつあるか」の情報が与えられるので、「合計 MM 個の商品を選ぶ方法」の数を求めて下さい。ただし、同じ種類の商品は区別しないこととします。

いや、これは少し簡単過ぎるので、ちょっとした注文も追加しよう。整数 kk, xx からなる QQ 個の注文を用意したので、それぞれについて「kik_i 種類目の商品をちょうど xix_i 個選ばなければならないとき、合計 MM 個の商品を選ぶ方法」の数を求めて下さい。


入力

制約に誤りがあったため、修正しました。1Q100,0001 ≦ Q ≦ 100,0001Q500,0001 ≦ Q ≦ 500,000(22:15)

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

NN MM QQ a1a_1 a2a_2aNa_N k1k_1 x1x_1 k2k_2 x2x_2 : kQk_Q xQx_Q

  • 11 行目には、商品の種類数を表した整数 N(1N2000)N (1 ≦ N ≦ 2000) と、選ぶ商品の個数を表す整数 M(1M2000)M (1 ≦ M ≦ 2000) と、注文の個数を表した整数 Q(1Q500,000)Q (1 ≦ Q ≦ 500,000) が空白区切りで与えられる。
  • 22 行目では、各種類の商品の個数の情報がスペース区切りで NN 個与えられる。このうち ii 番目では、ii 種類目の商品の個数を表す整数 ai(1aiM)a_i (1 ≦ a_i ≦ M) が与えられる。
  • 33 行目からの QQ 行では、注文に関する情報が与えられる。このうち ii 行目では、22 つの整数 ki(1kiN)k_i (1 ≦ k_i ≦ N), xi(1xiaki)x_i (1 ≦ x_i ≦ a_{k_i}) が空白区切りで与えられる。これは、ii 個目の注文が「kik_i 種類目の商品をちょうど xix_i 個選ばなければならないとき、合計 MM 個の商品を選ぶ方法の数を出力せよ」というものであることを表している。

部分点

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

  • N100,M100,Q100N ≦ 100, M ≦ 100, Q ≦ 100 を満たすテストケースすべてに正解した場合は 1010 点が与えられる。
  • N100,M100N ≦ 100, M ≦ 100 を満たすテストケースすべてに正解した場合はさらに 2020 点が与えられる。
  • Q1000Q ≦ 1000 を満たすテストケースすべてに正解した場合はさらに 5050 点が与えられる。

出力

QQ 行に出力せよ。そのうち ii 行目には、ii 個目の注文への答えを 1,000,000,007(109+7)1,000,000,007 (10^9+7) で割った余りを出力せよ。


入力例1


3 5 2
3 2 2
1 3
1 0

出力例1


3
0

11 つ目の注文は「11 種類目の商品をちょうど 33 個選ばなければならないとき、合計 55 個の商品を選ぶ方法の数を出力せよ」というもので、そのような方法は以下の 33 通りある。

  • 11 種類目の商品を 33 個、22 種類目の商品を 22 個、33 種類目の商品を 00 個選ぶ。
  • 11 種類目の商品を 33 個、22 種類目の商品を 11 個、33 種類目の商品を 11 個選ぶ。
  • 11 種類目の商品を 33 個、22 種類目の商品を 00 個、33 種類目の商品を 22 個選ぶ。

また 22 つ目の注文では 22 種類目と 33 種類目の商品から合計 55 個の商品を選ばなければならないが、商品が足りずそのような方法は存在しないため、00 と出力する。


入力例2


4 7 5
1 2 3 4
4 0
3 2
2 1
1 1
1 0

出力例2


0
5
5
9
6