编程题
### 问题描述
小齐每天都要在他的农场里巡视 $N$ 头奶牛,以确保它们的健康和幸福。
每头奶牛的位置由二维平面上的一个点描述,而小齐从原点 $(0,0)$ 出发。为了使他的路线更有趣,小齐决定只沿坐标轴的平行方向行走,即只能向北、向南、向东或向西行走。此外,他只有在到达一头奶牛的位置时才改变行进方向(他也可以选择在不改变方向的情况下通过一头奶牛的位置)。当他改变行进方向时,他可以进行 $90$ 度或 $180$ 度的转弯。小齐的路线必须在访问所有奶牛后回到原点。
请计算小齐可以采取的不同路线的数量,如果他在每头奶牛的位置上都改变了方向。他可以在不改变方向的情况下任意多次通过奶牛的位置。相同的几何路线按照前向和后向的方式计数为两条不同的路线。
### 输入格式
* 第 $1$ 行:整数 $N$。
* 第 $2$ 行至 $1+N$ 行:第 $i+1$ 行包含第 $i$ 个点的 $x$ 和 $y$ 坐标(用空格分隔),每个值在范围 $-1000$ 至 $1000$ 之间。
### 输出格式
* 第 $1$ 行:小齐可以采取的不同路线的数量(如果没有有效路线,可能为零)。
### 样例输入
```
4
0 1
2 1
2 0
2 -5
```
### 样例输出
```
2
```
### 评测数据规模
$1 \leq N \leq 10$,$1 \leq x \leq 1000$,$1 \leq y \leq 1000$。