给定一个二维平面上的凸多边形,其顶点为 $P_1, P_2, \dots, P_n$,请回答 $q$ 个查询。每个查询属于以下类型之一:
- 给定一个点 $(x, y)$,求满足 $1 \le i < j \le n$ 且点 $(x, y)$、$P_i$ 和 $P_j$ 共线的所有点对 $(P_i, P_j)$ 的数量。
- 给定两个点 $(x_1, y_1)$ 和 $(x_2, y_2)$,求满足 $1 \le i \le n$ 且点 $(x_1, y_1)$、$(x_2, y_2)$ 和 $P_i$ 共线的所有点 $P_i$ 的数量。
输入格式
第一行包含两个整数 $n$ 和 $q$ ($3 \le n \le 10^5, 1 \le q \le 10^5$),分别表示给定多边形的顶点数和查询次数。
接下来的 $n$ 行,每行包含两个整数 $x$ 和 $y$,表示多边形的一个顶点。
接下来的 $q$ 行,每行包含一个查询,格式如下:
- “$1 \ x \ y$”,要求计算满足 $1 \le i < j \le n$ 且点 $(x, y)$、$P_i$ 和 $P_j$ 共线的所有点对 $(P_i, P_j)$ 的数量。
- “$2 \ x_1 \ y_1 \ x_2 \ y_2$”,要求计算满足 $1 \le i \le n$ 且点 $(x_1, y_1)$、$(x_2, y_2)$ 和 $P_i$ 共线的所有点 $P_i$ 的数量。
保证: 对于所有点和查询,满足 $|x|, |y| \le 10^9$; 多边形顶点按逆时针顺序给出; 多边形是凸的(特别地,没有三个顶点共线); 对于每个查询,给定的点与多边形顶点不重合; * 第一种格式的查询次数不超过 $100$。
输出格式
对于每个查询,输出一行,包含一个整数,即该查询的答案。
样例
输入 1
5 3 0 0 2 0 2 1 1 2 0 2 1 1 1 2 1 1 2 2 1 2 2
输出 1
1 1 2
说明
- 对于第一个查询,唯一的点对是 $(P_2, P_5)$,因为 $(1, 1)$、$P_2 = (2, 0)$ 和 $P_5 = (0, 2)$ 共线。
- 对于第二个查询,唯一的点是 $P_1$,因为 $(1, 1)$、$(2, 2)$ 和 $P_1 = (0, 0)$ 共线。
- 对于第三个查询,两个点对是 $(P_2, P_3)$ 和 $(P_4, P_5)$。