#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <map>
#include <set>
#include <iomanip>
using namespace std;
#define MAXN 10005
#define MOD 1000000007
struct node
{
int x , y;
}arr[25];
int solve(int i , int j , int k , int l)
{
double a , b ,c ,d , e ,f;
a = sqrt((arr[i].x - arr[j].x)*(arr[i].x - arr[j].x)+abs(arr[i].y - arr[j].y)*abs(arr[i].y - arr[j].y));
b = sqrt((arr[j].x - arr[k].x)*(arr[j].x - arr[k].x)+abs(arr[j].y - arr[k].y)*abs(arr[j].y - arr[k].y));
c = sqrt((arr[k].x - arr[l].x)*(arr[k].x - arr[l].x)+abs(arr[k].y - arr[l].y)*abs(arr[k].y - arr[l].y));
d = sqrt((arr[i].x - arr[l].x)*(arr[i].x - arr[l].x)+abs(arr[i].y - arr[l].y)*abs(arr[i].y - arr[l].y));
e = sqrt((arr[i].x - arr[k].x)*(arr[i].x - arr[k].x)+abs(arr[i].y - arr[k].y)*abs(arr[i].y - arr[k].y));
f = sqrt((arr[l].x - arr[j].x)*(arr[l].x - arr[j].x)+abs(arr[l].y - arr[j].y)*abs(arr[l].y - arr[j].y));
double minn , maxx;
int num1 = 0 , num2 = 0;
minn = min(a , min(b , c));
maxx = max(a , max(b ,max(c , max(d , max(e , f)))));
if(a == minn) num1 ++ ;
if(a == maxx) num2 ++;
if(b == minn) num1 ++ ;
if(b == maxx) num2 ++;
if(c == minn) num1 ++ ;
if(c == maxx) num2 ++;
if(d == minn) num1 ++ ;
if(d == maxx) num2 ++;
if(e == minn) num1 ++ ;
if(e == maxx) num2 ++;
if(f == minn) num1 ++ ;
if(f == maxx) num2 ++;
if(num1 == 4 && num2 == 2 ) return 1;
else return 0;
}
int main()
{
int n;
while(cin >> n)
{
for(int i = 0 ; i < n ; i ++)
{
scanf("%d %d" , &arr[i].x , &arr[i].y);
}
int num = 0;
for(int i = 0 ; i < n ; i ++)
{
for(int j = i + 1 ; j < n ; j ++)
{
for(int k = j + 1 ; k < n ; k ++)
{
for(int l = k + 1 ; l < n ; l ++)
{
if(solve(i , j , k , l)) num ++ ;
}
}
}
}
cout << num << endl;
}
}