#include <bits/stdc++.h>
#define endl '\n'
#define int long long

using namespace std;

const long long longlongmax=9223372036854775807;
const int modul=998244353;
const long long mod = 1e9 + 7;


mt19937 mt(chrono::steady_clock::now().time_since_epoch().count());

const int N=100009;

int P(vector<pair<int,int>>tacke){
    int n=tacke.size();
    tacke.push_back(tacke[0]);
    int rez=0;
    for(int i=0; i<n; i++)
        rez+=(tacke[i].first*tacke[i+1].second)/2-(tacke[i].second*tacke[i+1].first)/2;
    if(rez<0)
        rez=-rez;
    return rez;
}

int veci_koef(pair<int,int> A1,pair<int,int> B1,pair<int,int> A2,pair<int,int> B2){
    //if(A1.first==B1.first||A2.first==B2.first) return -1;
    if((A1.second-B1.second)*(A2.first-B2.first)>(A2.second-B2.second)*(A1.first-B1.first))
        return 1;
    return 2;
}



signed main(){

    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    //freopen("seating.in","r",stdin);
    //freopen("seating.out","w",stdout);

    int n;
    cin >> n;
    vector<pair<int,int>> niz(n);
    for(int i=0; i<n; i++) cin >> niz[i].first >> niz[i].second;
    vector<pair<int,int>> up,down;
    sort(niz.begin(),niz.end());
    up.push_back(niz[0]);down.push_back(niz[0]);
    for(int i=1; i<n; i++){
        while(up.size()>1&&veci_koef(up[up.size()-2],up.back(),up.back(),niz[i])==2)
            up.pop_back();
        up.push_back(niz[i]);
    }
    for(int i=1; i<n; i++){
        while(down.size()>1&&veci_koef(down[down.size()-2],down.back(),down.back(),niz[i])==1)
            down.pop_back();
        down.push_back(niz[i]);
    }
    vector<pair<int,int>> CH;
    cout << down.size() << endl;
    down.pop_back();
    reverse(down.begin(),down.end());
    down.pop_back();
    for(auto x:up){
        CH.push_back(x);

    }

    for(auto x:down){
        CH.push_back(x);
        //cout << x.first << " " << x.second << "!"<<endl;
    }

    //for(auto x:CH)
        //cout << x.first << " " << x.second << endl;
    if(CH.size()==n){
        int rez=longlongmax;
        int povrs=P(CH);
        vector<pair<int,int>> pomoc=CH;
        pomoc.push_back(CH[0]);
        pomoc.push_back(CH[1]);
        for(int i=1; i<=n; i++)
            rez=min(rez,povrs-P({pomoc[i],pomoc[i-1],pomoc[i+1]}));
        cout << rez;
        return 0;
    }





    return 0;
}
/*
    abcde
    01234
    04321 --> 12340
              0   1
    011
    110

1
3 1
1 2 3
3 5

*/