#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define ios ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define endl '\n'
#define pb push_back
using namespace std;
using namespace __gnu_pbds;
typedef tree<pair<int,int>, null_type, less<pair<int,int>>, rb_tree_tag, tree_order_statistics_node_update> os;
typedef unsigned long long ull;
typedef long long ll;
int main(){
    ios;
    int n;
    cin>>n;
    vector<pair<ll,ll>> a(n);
    for(int i = 0;i<n;i++)cin>>a[i].first>>a[i].second;
    ll res = LLONG_MAX;
    for(int i = 0;i<n;i++){
        vector<pair<ll,ll>> koordinate;
        for(int j = 0;j<n;j++){
            if(j!=i)koordinate.pb({a[j].first, a[j].second});
        }
        ll x1 = koordinate[0].first, y1 = koordinate[0].second, x2 = koordinate[1].first, y2 = koordinate[1].second, x3 = koordinate[2].first, y3 = koordinate[2].second;
        ll povrsina = (ll)abs(x1*(y2-y3) + x2*(y3 - y1) + x3 * (y1 - y2));
        povrsina/=2;
        res = min(res, povrsina);
    }
    cout<<res<<endl;
}