#include using namespace std; typedef long long ll; typedef pair PP; //#define MOD 1000000007 #define MOD 998244353 #define INF 2305843009213693951 //#define INF 810114514 #define PI 3.141592653589 #define setdouble setprecision #define REP(i,n) for(ll i=0;i<(n);++i) #define OREP(i,n) for(ll i=1;i<=(n);++i) #define RREP(i,n) for(ll i=(n)-1;i>=0;--i) #define ALL(v) (v).begin(), (v).end() #define GOODBYE do { cout << "-1" << endl; return 0; } while (false) #define MM <<" "<< #define Endl endl #define debug true #define debug2 false vector> XY; ll area(ll i,ll j,ll k){ ll a = XY[j].first -XY[i].first; ll b = XY[j].second-XY[i].second; ll c = XY[k].first -XY[i].first; ll d = XY[k].second-XY[i].second; return a*d-b*c; } ll area(ll i,ll j,ll k,ll l){ return abs(area(i,j,k))+abs(area(k,l,i)); } int main(void){ //cin.tie(nullptr); //ios::sync_with_stdio(false); ll N; cin >> N; XY.resize(N); REP(i,N){ cin >> XY[i].first >> XY[i].second; } //cout << area(0,1,2,3) << endl; ll Ans = 0; REP(i,N){ REP(j,N){ if(i>=j)continue; ll num1 = 0,num2 = 0; REP(k,N){ if(k==i || k==j)continue; num1 = max(num1,area(i,j,k)); num2 = min(num2,area(i,j,k)); } Ans = max(Ans,abs(num1-num2)); } } cout << Ans << endl; return 0; }