Problem: Iahub has drawn a set of n points in the cartesian plane which he calls "special points". A quadrilateral is a simple polygon without self-intersections with four sides (also called edges) and four vertices (also called corners). Please note that a quadrilateral doesn't have to be convex. A special quadrilateral is one which has all four vertices in the set of special points. Given the set of special points, please calculate the maximal area of a special quadrilateral. 

Input

The first line contains integer n (4 ≤ n ≤ 300). Each of the next n lines contains two integers: xi, yi ( - 1000 ≤ xi, yi ≤ 1000) — the cartesian coordinates of ith special point. It is guaranteed that no three points are on the same line. It is guaranteed that no two points coincide. 

Output

Output a single real number — the maximal area of a special quadrilateral. The answer will be considered correct if its absolute or relative error does't exceed 10 - 9.

Examples

Input

5
0 0
0 4
4 0
4 4
2 3


Output

16.000000

Note

In the test example we can choose first 4 points to be the vertices of the quadrilateral. They form a square by side 4, so the area is 4·4 = 16.

Solution (in CPP):

Solution:
#include <bits/stdc++.h>
using namespace std;
const int inf = 1000010000;
complex<int> point[330];
int crs(complex<int> a, complex<int> b) {
  return (a.real() * b.imag() - a.imag() * b.real());
}
int main() {
  int n, s = 0;
  scanf("%d", &n);
  for (int i = 0, x, y; i < n && 2 == scanf("%d %d", &x, &y); ++i)
    point[i] = complex<int>(x, y);
  for (int i = 0; i < n; ++i)
    for (int j = i + 1; j < n; ++j) {
      int a = inf, b = -inf;
      for (int k = 0; k < n; ++k) {
        int c = crs(point[k] - point[i], point[j] - point[i]);
        if (c < 0)
          a = min(a, c);
        else if (c > 0)
          b = max(b, c);
        if (a < 0 && b > 0) s = max(s, b - a);
      }
    }
  printf("%.8lf\n", s / 2.0);
}