Little Rabbit 最近对一种特殊的保龄球产生了兴趣。保龄球可以看作二维平面上的一个凸多边形,而球瓶(保龄球的目标)可以看作平面上的点。
与普通保龄球一样,目标是让保龄球击中尽可能多的球瓶。我们可以假设保龄球在平面上做平移运动。一旦球瓶接触到保龄球(包括边界),该球瓶就会被击倒,且不会影响保龄球的运动方向。
现在给定保龄球和球瓶的位置,对于保龄球运动的不同方向,请计算它能击倒多少个球瓶。
输入格式
第一行包含一个整数 $T$ ($1 \le T \le 100$),表示测试用例的数量。 对于每个测试用例,第一行包含一个整数 $n$ ($3 \le n \le 10^5$),表示凸多边形的顶点数。 接下来的 $n$ 行,每行包含两个整数 $x, y$ ($|x|, |y| \le 10^9$),表示凸多边形的一个顶点坐标 $(x, y)$。顶点按逆时针顺序给出,且没有三点共线。 下一行包含一个整数 $m$ ($1 \le m \le 10^5$),表示球瓶的数量。 接下来的 $m$ 行,每行包含两个整数 $x, y$ ($|x|, |y| \le 10^9$),表示一个球瓶的坐标 $(x, y)$。保证球瓶严格位于多边形外部。 下一行包含一个整数 $q$ ($1 \le q \le 10^5$),表示查询的数量。 接下来的 $q$ 行,每行包含两个整数 $x, y$ ($|x|, |y| \le 10^9$),表示保龄球运动的方向向量 $(x, y)$。保证 $(x, y) \neq (0, 0)$。
保证所有测试用例的 $n, m, q$ 之和不超过 $2 \times 10^5$。
输出格式
对于每个查询,输出一行,包含一个整数,表示保龄球能击倒的球瓶数量。
样例
输入 1
1 4 0 0 2 0 2 2 0 2 5 1 4 3 1 4 2 5 1 3 3 3 0 1 1 0 1 1
输出 1
1 3 3