编程题
### 问题描述
认为一个集合 $S = \\{(x_1 , y_1) , (x_2 , y_2) , … , (x_k,y_k)\\}$ 是好的,当且仅当把它们按照 $y_i$ 降序(从大到小)排序后满足:对于所有满足 $3 \le j \le k$ 的 $j$ ,有 $x_{j−2} \lt x_j \lt x_{j−1}$ 或者 $x_{j−1} \lt x_j \lt x_{j−2}$ 。 现在晓宇在二维平面上有一个 $n$ 个点的集合。晓宇请你帮她算算有多少个非空子集 $S$ 是好的。因为答案可能很大,你只需要告诉她答案对 $1000000007$ 取模后的结果。
### 输入格式
第一行一个整数 $n$ ,表示点的个数。
接下来 $n$ 行,每行两个整数 $x_i$ , $y_i$ ,表示第 $i$ 个点的坐标。
### 输出格式
一行一个整数表示答案对 $1000000007$ 取模后的结果。
##### 输入样例
```
4
2 2
3 1
1 4
4 3
```
### 输出样例
```
14
```
### 数据范围
对于 $8$% 的数据,满足 $1 \le n \le 18$ 。
对于 $20$% 的数据,满足 $1 \le n \le 100$ 。
对于 $52$% 的数据,满足 $1 \le n \le 1500$ 。
对于 $72$% 的数据,满足 $1 \le n \le 4000$ 。
对于 $100$% 的数据,满足 $1 \le n \le 6000, 0 \le |x_i|, |y_i| \le 10^9$ 。$x_i$ 互不相同,$y_i$互不相同。