You are given a set of $*n*$ points on the plane. A line containing the origin is called good, if projection of the given set to this line forms a symmetric multiset of points. Find the total number of good lines.
Multiset is a set where equal elements are allowed.
Multiset is called symmetric, if there is a point $*P*$ on the plane such that the multiset is centrally symmetric in respect of point $*P*$.
Input
The first line contains a single integer $*n*$ ($1 ≤ *n* ≤ 2000$) — the number of points in the set.
Each of the next $*n*$ lines contains two integers $*x*_{*i*}$ and $*y*_{*i*}$ ($- 10^{6} ≤ *x*_{*i*}, *y*_{*i*} ≤ 10^{6}$) — the coordinates of the points. It is guaranteed that no two points coincide.
Output
If there are infinitely many good lines, print -1.
Otherwise, print single integer — the number of good lines.
Note
Picture to the first sample test:

In the second sample, any line containing the origin is good.
样例
3
1 2
2 1
3 3
3
2
4 3
1 2
-1
题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。