你正准备开设一家销售俄罗斯套娃的商店。为此,你向工厂订购了 $N$ 个俄罗斯套娃,并给它们编号为 $1$ 到 $N$。其中第 $i$ 个 ($1 \le i \le N$) 套娃可以看作是一个底面直径为 $R_i$ cm、高度为 $H_i$ cm 的中空直圆柱体。
套娃可以嵌套存放。每个套娃最多只能放入一个底面直径和高度都比它小的其他套娃。被放入的套娃本身也可以装有其他套娃。
有一天,你收到了工厂的通知。由于无法一次性提供所有 $N$ 个套娃,工厂只能先提供所有底面直径不小于 $A$ cm 且高度不大于 $B$ cm 的套娃。
$A$ 和 $B$ 的值可能会随时改变。因此,你需要针对 $Q$ 个组 $(A_j, B_j)$ ($1 \le j \le Q$) 中的每一个,预先计算出当这些套娃被嵌套存放时,没有被放入任何其他套娃的套娃数量的最小值。
题目描述
给定每个套娃的底面直径和高度信息,以及 $Q$ 个组 $(A_j, B_j)$ ($1 \le j \le Q$)。对于每一组,请编写一个程序,计算当预先送达的套娃被嵌套存放时,没有被放入任何其他套娃的套娃数量的最小值。
输入格式
从标准输入读取以下数据:
- 第 $1$ 行包含两个整数 $N, Q$,以空格分隔。这表示订购的套娃总数为 $N$,且给出了 $Q$ 组 $(A, B)$ 的值。
- 接下来的 $N$ 行中的第 $i$ 行 ($1 \le i \le N$) 包含两个整数 $R_i, H_i$,以空格分隔。这表示第 $i$ 个套娃的底面直径为 $R_i$ cm,高度为 $H_i$ cm。
- 接下来的 $Q$ 行中的第 $j$ 行 ($1 \le j \le Q$) 包含两个整数 $A_j, B_j$,以空格分隔。
输出格式
输出共 $Q$ 行。第 $j$ 行 ($1 \le j \le Q$) 应输出针对组 $(A_j, B_j)$,当预先送达的套娃被嵌套存放时,没有被放入任何其他套娃的套娃数量的最小值。
数据范围
所有输入数据满足以下条件:
- $1 \le N \le 200\,000$
- $1 \le Q \le 200\,000$
- $1 \le R_i \le 1\,000\,000\,000$ ($1 \le i \le N$)
- $1 \le H_i \le 1\,000\,000\,000$ ($1 \le i \le N$)
- $1 \le A_j \le 1\,000\,000\,000$ ($1 \le j \le Q$)
- $1 \le B_j \le 1\,000\,000\,000$ ($1 \le j \le Q$)
子任务
子任务 1 [11 点]
满足以下条件: $N \le 10$ $Q = 1$
子任务 2 [15 点]
满足以下条件: $N \le 100$ $Q = 1$
子任务 3 [25 点]
满足以下条件: $N \le 2\,000$ $Q \le 2\,000$
子任务 4 [49 点]
无附加限制。
样例
样例输入 1
7 3 9 5 3 7 10 6 5 10 2 6 10 10 4 1 10 5 3 5 3 9
样例输出 1
0 1 2
说明
- 当 $(A, B) = (10, 5)$ 时,不存在底面直径不小于 $10$ cm 且高度不大于 $5$ cm 的套娃,因此输出 $0$。
- 当 $(A, B) = (3, 5)$ 时,底面直径不小于 $3$ cm 且高度不大于 $5$ cm 的套娃(即第 $1$ 个和第 $7$ 个套娃)送达。第 $7$ 个套娃可以放入第 $1$ 个套娃中。没有被放入任何其他套娃的套娃数量的最小值为 $1$。
- 当 $(A, B) = (3, 9)$ 时,底面直径不小于 $3$ cm 且高度不大于 $9$ cm 的套娃(即第 $1, 2, 3, 7$ 个套娃)送达。在这种情况下,可以将第 $7$ 个套娃放入第 $1$ 个套娃中,再将第 $1$ 个套娃放入第 $3$ 个套娃中。没有被放入任何其他套娃的套娃数量的最小值为 $2$。
样例输入 2
10 8 14 19 9 16 11 2 7 18 20 16 9 5 10 9 20 6 4 17 13 8 7 14 9 3 9 13 4 19 12 4 19 16 18 10 7 14
样例输出 2
3 1 3 5 0 2 1 3