時間制限 : sec, メモリ制限 : KB
English / Japanese  

抽選ボックス

アイヅ祭りの一角で抽選会が行われている。抽選ボックスの中には、何種類かのボールが入っている。それぞれの種類のボールには同じ整数が書いてある。抽選ボックスには一つの整数T が書かれている。

あなたは、2つの整数AB を宣言した上で、ボックスの中から最大M 個のボールを取り出すことができる。取り出したボールに書かれた整数の和をS とすると、ST で割った余りがA 以上、かつ、STで割った値(小数点以下は切り捨て)がB 以上のとき、素敵な景品をもらうことができる。

ボールの種類の数、各種類のボールに書かれている整数、取り出すことができるボールの最大数、抽選ボックスに書かれている整数、2つの整数AB からなる宣言が与えられたとき、各宣言に対して景品が得られる可能性があるかを判定するプログラムを作成せよ。ただし、どの種類のボールもM 個以上存在するものとする。ボールを1つも取り出さなくても景品がもらえる場合があることに注意せよ。

Input

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

N M T
a_1
a_2
:
a_N
Q
A_1 B_1
A_2 B_2
:
A_Q B_Q

1 行目にボールの種類の数N(1≤N≤105)と、取り出すことができるボールの最大数M(1≤M≤105)と、抽選ボックスに書かれている整数T(1≤T≤1000)が与えられる。続くN 行にi 種類目のボールに書かれた整数a_i (1≤a_i≤109)が与えられる。続く1 行に宣言の数Q (1≤Q≤105)が与えられる。続くQ 行にi 番目の宣言を表す2つの整数A_i (0 ≤ A_i < T)、B_i (0 ≤ B_i ≤ 109)が与えられる。

Output

各宣言に対して、景品がもらえる可能性がある場合は「yes」、ない場合は「no」と1行に出力する。

Sample Input 1

3 2 7
8
3
6
5
2 2
3 2
4 1
6 1
6 0

Sample Output 1

yes
no
yes
no
yes