ビ太郎は,大きな円形の湖の周りに住んでいる.湖の周りの長さは L であり,湖の周りのある地点にはビ太郎の家がある.ビ太郎の家から湖の周りを時計回りに x (0 ≦ x < L) 移動した地点を地点 x と呼ぶ.現在,湖の周りで行われるマラソン大会が企画されている.
ビ太郎はマラソン大会は以下のように行われる予定であることを聞いた.
0 から L - 1 までの番号が付けられたゼッケンが 1 枚ずつ用意されている.マラソン大会の参加者はいずれかのゼッケンを着用する.ゼッケン l (0 ≦ l ≦ L - 1) を着用する参加者のスタート地点は地点 l となる.T ビョウにわたり,参加者はそれぞれの速度で湖の周りを時計回りに移動する.マラソン大会がスタートしてから,t ビョウ (0 ≦ t ≦ T) 経った時点を時刻 t と呼ぶ.ビ太郎はマラソン大会の参加者名簿を持っている.現在は N 人の参加者が参加者名簿に記載されていて,i 番目の参加者 (1 ≦ i ≦ N) はゼッケン Ai を着用し,1 ビョウあたり Si の速度で湖の周りを時計回りに移動する予定である.
参加者名簿を元に,ビ太郎はマラソン大会中に起こる衝突の回数を求めた.ここで,衝突とは異なる参加者 2 人が同じ地点にいることを指すものとする.厳密には,0 ≦ p < q ≦ L - 1 を満たす整数 p, q と 0 ≦ t ≦ T を満たす実数 t からなる組 (p, q, t) で,以下の条件を満たすものの個数を求めた.
p を着用した参加者がいる.q を着用した参加者がいる.p を着用した参加者とゼッケン q を着用した参加者が,時刻 t に同じ地点にいる.しかし,その後参加者名簿に Q 回の変更が行われた.j 番目 (1 ≦ j ≦ Q) の変更は 2 つの整数 Xj, Yj で表され,以下のようなものである.
Xj を着用し,1 ビョウあたり Yj の速度で湖の周りを時計回りに移動する人が参加者名簿に記載されている場合,その人を参加者名簿から削除する.そうでない場合,ゼッケン Xj を着用し,1 ビョウあたり Yj の速度で湖の周りを時計回りに移動する人を新たに参加者名簿に追加する.ただし,いずれの変更が終了した時点でも,参加者名簿に記載されている参加者は 2 人以上おり,かつ参加者の着用するゼッケンは相異なることが保証される.
ビ太郎はそれぞれの変更が終了した時点での参加者における,マラソン大会中に起こる衝突の回数を知りたい.問題文の制約より,マラソン大会中に起こる衝突の回数は有限であることが証明できる.
マラソン大会と参加者名簿への変更の情報が与えられたとき,それぞれの変更が終了した時点での参加者における,マラソン大会中に起こる衝突の回数を 1 000 000 007 で割ったあまりを求めるプログラムを作成せよ.
入力は以下の形式で与えられる.
N L T
A1 A2 … AN
S1 S2 … SN
Q
X1 Y1
X2 Y2
:
XQ YQ
Q 行に出力せよ.j 行目 (1 ≦ j ≦ Q) には j 番目の変更が終了した時点での参加者における,マラソン大会中に起こる衝突の回数を 1 000 000 007 で割ったあまりを出力せよ.
2 ≦ N.N ≦ L ≦ 109.1 ≦ T ≦ 109.0 ≦ Ai ≦ L - 1 (1 ≦ i ≦ N).Ai ≠ Aj (1 ≦ i < j ≦ N).1 ≦ Si ≦ 109 (1 ≦ i ≦ N).1 ≦ Q.N + Q ≦ 100 000.0 ≦ Xj ≦ L - 1 (1 ≦ j ≦ Q).1 ≦ Yj ≦ 109 (1 ≦ j ≦ Q).2 人以上いる.