2328 - 求三角形
Description

给定了 n 个不同的点在二维坐标平面上。

保证对于所有给定的点 0 \leq y_i \leq 1

从选择三个不同的点作为其顶点,可以形成多少个不同的直角三角形^{\text{∗}}

如果存在一个点 v 使得 va 的一个顶点,但不是 b 的一个顶点,则两个三角形 ab 是不同的。


Input

第一行包含一个整数 n (3 \leq n \leq 2 \cdot 10^5) — 点的数量。

接下来的 n 行包含两个整数 x_iy_i (0 \leq x_i \leq n, 0 \leq y_i \leq 1) 可以选择的第 i 个点。

保证所有 (x_i, y_i) 是成对不同的。

Output

输出一个整数,表示可以从选择三个点中形成的不同直角三角形的数量。

Examples

Input

5
1 0
1 1
3 0
5 0
2 1

Output

4

Input

3
0 0
1 0
3 0

Output

0

Input

9
1 0
2 0
3 0
4 0
5 0
2 1
7 1
8 1
9 1

Output

8
Hint

30%的数据,n\leq 100;

100%的数据,n,x_i\leq 2 \times 10^5,0\leq y_i \leq 1;

题目参数
Time Limit 1 second
Memory Limit 128 MB
提交次数 35
通过次数 13