Catarina 喜欢她社区里所有的猫。她毕生的梦想是设计一个大型的“看猫环路”,这样她每天都可以出门一边锻炼身体,一边向猫咪们问好。
Catarina 所在的社区可以表示为一个二维平面,其中南北方向与 $y$ 轴对齐。一个访问了 $m$ 只猫的看猫环路恰好由 $m$ 步组成。Catarina 选择一个起点 $(x_0, y_0)$ 并面向四个基本方向(东、南、西、北)之一。对于每一步 $i = 1, 2, \dots, m$,会发生以下过程:
- Catarina 选择一个值 $k_i > 0$,并从 $(x_{i-1}, y_{i-1})$ 沿当前方向直行 $k_i$ 个单位,停在某只在之前所有步骤中都未曾问好过的猫的位置。
- Catarina 向这只猫问好,花一些时间欣赏它的美丽。
- 在不转弯的情况下,Catarina 沿当前方向继续直行 $k_i$ 个单位,停在位置 $(x_i, y_i)$。
- Catarina 顺时针或逆时针旋转 $90^\circ$,再次面向四个基本方向之一。
在完成所有 $m$ 步后,Catarina 必须回到她的起点 $(x_0, y_0)$,并面向她的初始方向。注意,看猫环路的长度为 $\sum_{i=1}^m 2k_i$。当 $m = 0$ 时,看猫环路的长度为 $0$。
Catarina 知道居住在她社区里的 $N$ 只猫的位置。令人惊讶的是,没有任意两只猫具有相同的 $x$ 坐标或相同的 $y$ 坐标。你的任务是确定看猫环路所能达到的最大长度。
输入格式
第一行包含一个整数 $N$ ($1 \le N \le 4000$),表示猫的数量。
接下来的 $N$ 行中,每行描述一只猫,包含两个整数 $X$ 和 $Y$ ($-10^8 \le X, Y \le 10^8$),表示该猫的坐标为 $(X, Y)$。
没有任意两只猫具有相同的 $x$ 坐标或 $y$ 坐标(它们在两个坐标上都不同)。
输出格式
输出一行,包含一个整数,表示看猫环路所能达到的最大长度。
样例
样例输入 1
5 1 2 2 1 0 0 -1 -2 -2 -1
样例输出 1
0
样例说明 1
在这种情况下,存在一个长度为 16 且访问了所有猫的环路,但它不是一个看猫环路,因为坐标为 $(0, 0)$ 的猫被问好了两次。
样例输入 2
6 4 0 0 4 2 -1 -1 2 -4 3 3 -4
样例输出 2
32
样例说明 2
下图用小圆圈显示了猫的位置,以及一个访问了所有猫的最大长度看猫环路。该环路的长度为 32。
样例输入 3
7 2 1 0 -1 5 5 3 0 4 4 6 2 1 -2
样例输出 3
24
样例说明 3
可以通过一个长度为 24 的看猫环路访问 $N = 7$ 只猫中的 $m = 6$ 只。