AT_abc391_d [ABC391D] Gravity

Description

$ 10^9 $ 行 $ W $ 列のグリッドがあります。左から $ x $ 列目、**下から** $ y $ 行目のマスを $ (x,y) $ と表します。 $ N $ 個のブロックがあります。各ブロックは $ 1 \times 1 $ の正方形で、ブロック $ i $ $ (1 \leq i \leq N) $ は時刻 $ 0 $ にマス $ (X_i,Y_i) $ にあります。 時刻 $ t=1,2,\dots,10^{100} $ に、以下のルールに従ってブロックを動かします。 - グリッドの下から $ 1 $ 行目がすべてブロックで埋まっているならば、下から $ 1 $ 行目にあるブロックをすべて消滅させる。 - 残っているブロックについて、下にあるブロックから順番に、以下の操作を行う。 - ブロックが一番下の行にある、またはそのブロックの $ 1 $ つ下のマスにもブロックがあるならば、何もしない - そうでなければ、ブロックを $ 1 $ つ下のマスに動かす。 $ Q $ 個の質問が与えられます。 $ j $ 番目 $ (1 \leq j \leq Q) $ の質問では、時刻 $ T_j+0.5 $ にブロック $ A_j $ が存在するかどうか答えてください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ W $ $ X_1 $ $ Y_1 $ $ X_2 $ $ Y_2 $ $ \vdots $ $ X_N $ $ Y_N $ $ Q $ $ T_1 $ $ A_1 $ $ T_2 $ $ A_2 $ $ \vdots $ $ T_Q $ $ A_Q $

Output Format

$ Q $ 行出力せよ。 $ i $ 行目には、時刻 $ T_i+0.5 $ にブロック $ A_i $ が存在するならば `Yes` を、存在しないならば `No` を出力せよ。

Explanation/Hint

### Sample Explanation 1 ブロックの位置は以下のように変化します。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_abc391_d/2409e36d0dd7a264e20496b23016442944a58177fc0e26aeed347032c89a2e08.png) - 質問 $ 1 $ : 時刻 $ 1.5 $ にブロック $ 1 $ は存在するので、答えは `Yes` です。 - 質問 $ 2 $ : 時刻 $ 1.5 $ にブロック $ 2 $ は存在するので、答えは `Yes` です。 - 質問 $ 3 $ : ブロック $ 3 $ は時刻 $ 2 $ に消滅します。よって、時刻 $ 2.5 $ にブロック $ 3 $ は存在しないので、答えは `No` です。 ### Constraints - $ 1 \leq N \leq 2 \times 10^5 $ - $ 1 \leq W \leq N $ - $ 1 \leq X_i \leq W $ - $ 1 \leq Y_i \leq 10^9 $ - $ i \neq j $ なら $ (X_i,Y_i) \neq (X_j,Y_j) $ - $ 1 \leq Q \leq 2 \times 10^5 $ - $ 1 \leq T_j \leq 10^9 $ - $ 1 \leq A_j \leq N $ - 入力はすべて整数