#include<bits/stdc++.h>
using namespace std;

/////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <ext/pb_ds/assoc_container.hpp> 
#include <ext/pb_ds/tree_policy.hpp> 
using namespace __gnu_pbds;
typedef tree<pair<int, int>,null_type,less<pair<int, int>>,rb_tree_tag,tree_order_statistics_node_update> ordered_set;
typedef long long int ll;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#define  boost ios_base::sync_with_stdio(false);cin.tie(NULL);

#define ull unsigned long long
#define d1(x) cout<<#x<<" "<<x<<endl;
#define d2(x,y) cout<<#x<<" "<<x<<" "<<#y<<" "<<y<<endl;
#define d2i(x,y,i) cout<<#x<<i<<" "<<x<<" "<<#y<<i<<" "<<y<<endl;

#define fr(i,l,r) for(ll i=l;i<r;i++)
#define mems(a,x) memset(a,x,sizeof(a))
#define mod 1000000007
#define ff first
#define ss second
#define pb(x) push_back(x)
#define vll vector<ll>
#define pbp(x,y) push_back(make_pair(x,y))
#define all(v) v.begin(),v.end()
#define  mat vector<vector<ll>>
#define el cout<<'\n';
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

double slope( pair<ll,ll>&a,pair<ll,ll>&b){
     return ((double)(b.ss-a.ss))/((double)(b.ff-a.ff));

}
void solve(){

     ll n ;
     cin>>n;
    //  map<string,int>mp;
    //  string ans="satisfiable";
    //  fr(i,0,n){
    //      string s;
    //      cin>>s;
    //      if(s[0]=='!' && mp.count(s.substr(1)))
    //      ans=s.substr(1);
    //      else if(mp.count("!"+s))
    //      ans=s;
    //     mp[s]++;

    //  }
    //  cout<<ans;
    vector<pair<ll,ll>>v(n);
    fr(i,0,n)
    cin>>v[i].ff>>v[i].ss;
    ll ans=0;
    fr(i,0,n){
        for(int j=i+1;j<n;j++){
                double slp=slope(v[i],v[j]);
                if(slp<=1 && slp>=-1)
                ans++;
        }
    }
     cout<<ans;
}


int main(){
 boost
 ll t=1; 
// cin>>t;

    while(t--){
      solve();
   el
        }
    return 0;
}

#include<stdio.h>

float X(int a, int b, int c, int d)
{
    return ((b-d)*1.0)/(a-c);
}

int main()
{
    int m, t=0;
    scanf("%d", &m);
    int a[1001], b[1001];
    for (int i = 0; i < m; i++)
    scanf("%d %d", &a[i], &b[i]);
    for (int j = 0; j < m; j++)
    {
        for (int k = j+1; k < m; k++)
        {
            if((X(a[j], b[j], a[k], b[k])>=-1)&&(X(a[j], b[j], a[k], b[k])<=1))
            t++;
        }
        
    }
    printf("%d", t);
    return 0;
}