留云借风真君,这位居住在庆云顶云间居所的建造者,对机械学非常感兴趣。尽管距离璃月的海灯节还有一个月多的时间,她已经开始为节日设计一个游戏活动了。
留云借风真君与旅行者
这个游戏主要是关于发射弹珠以获得尽可能高的分数。游戏在一个二维平面上进行,平面上有两条水平直线 $y = 0$ 和 $y = H$。在这两条线之间,有 $n$ 个微型木板和 $m$ 枚硬币,它们都可以被视为单点。第 $i$ 个木板位于 $(x_i, y_i)$,而第 $i$ 枚硬币位于 $(x'_i, y'_i)$。
玩家从 $(10^{-9}, 10^{-9})$ 处发射一颗弹珠。设 $\vec{v} = (v_x, v_y)$ 为弹珠的速度(即如果弹珠当前位于 $(x, y)$,经过 $\epsilon$ 秒后它将移动到 $(x + v_x\epsilon, y + v_y\epsilon)$)。初始时 $\vec{v} = (1, 1)$。
当弹珠撞击木板或两条水平直线中的任意一条时,$v_y$ 会取反(即 $v_y$ 变为 $-v_y$),而 $v_x$ 保持不变。如果弹珠撞击到硬币,玩家得分增加 1,且弹珠的速度保持不变。
为了获得更高的分数,玩家可以在发射弹珠前选择移除任意数量的木板。也可以选择不移除任何木板。留云借风真君希望你通过计算在最佳策略下,弹珠在 $10^{10^{10^{10^{10}}}}$ 秒后能获得的最大分数,来帮助她评估游戏的难度。
输入格式
输入包含多组测试数据。第一行包含一个整数 $T$,表示测试数据的组数。对于每组测试数据:
第一行包含一个整数 $H$ ($2 \le H \le 10^9$)。
第二行包含一个整数 $n$ ($1 \le n \le 10^5$),表示木板的数量。
接下来的 $n$ 行,第 $i$ 行包含两个整数 $x_i$ 和 $y_i$ ($1 \le x_i \le 10^9, 1 \le y_i < H$),表示位于 $(x_i, y_i)$ 的木板。
接下来一行包含一个整数 $m$ ($1 \le m \le 10^5$),表示硬币的数量。
接下来的 $m$ 行,第 $i$ 行包含两个整数 $x'_i$ 和 $y'_i$ ($1 \le x'_i \le 10^9, 1 \le y'_i < H$),表示位于 $(x'_i, y'_i)$ 的硬币。
保证同一测试数据中给出的 $(n + m)$ 个点互不相同。同时保证所有测试数据中 $n$ 的总和与 $m$ 的总和均不超过 $5 \times 10^5$。
输出格式
对于每组测试数据,输出一行,包含一个整数,表示在移除部分(或不移除任何)木板后,玩家能获得的最大分数。
样例
输入格式 1
2 4 3 1 1 2 2 6 2 4 3 1 3 3 5 1 7 3 3 1 4 2 3 1 1 6 2 9 1
输出格式 1
3 3
说明
两个样例测试数据如下所示。实心菱形代表保留的木板,空心菱形代表移除的木板,圆点代表硬币。
样例测试数据 No. 1 样例测试数据 No. 2