#include <bits/stdc++.h>

using namespace std;
bool naliniji(long long x1,long long x2,long long y1,long long y2)
{
    if(y1!=0&&y2!=0)
    {
        if(double(x1)/double(y1)==double(x2)/double(y2)) return true;

    }
    else if(y1==0&&y2==0) return true;
    return false;
}
float area(int x1, int y1, int x2, int y2, int x3, int y3)
{
   return abs((x1*(y2-y3) + x2*(y3-y1)+ x3*(y1-y2))/2.0);
}
bool uTrouglu(long long x1, long long y1, long long x2, long long y2, long long x3, long long y3, long long x, long long y)
{
    float A = area (x1, y1, x2, y2, x3, y3);
    float A1 = area (x, y, x2, y2, x3, y3);
    float A2 = area (x1, y1, x, y, x3, y3);
    float A3 = area (x1, y1, x2, y2, x, y);
    return (A == A1 + A2 + A3);
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n;
    cin>>n;
    long long mod=1000000007;
    long long rez=0;
    vector<pair<long long,long long>> a;
    for(int i=0;i<n;i++)
    {
        long long x,y;
        cin>>x>>y;
        a.push_back(make_pair(x,y));
    }
    if(n==3)
    {
        long long x1=a[0].first,y1=a[0].second,x2=a[1].first,y2=a[1].second,x3=a[2].first,y3=a[2].second;
        if(naliniji(x1,y1,x2,y2)) rez++;
        if(naliniji(x1,y1,x3,y3)) rez++;
        if(naliniji(x3,y3,x2,y2)) rez++;
        if(uTrouglu(x1,y1,x2,y2,x3,y3,0,0)) rez++;
        cout<<rez;
    }
}