#include <bits/stdc++.h>
using namespace std;
struct Node {
  double x, y;
} a[55];
map<pair<double, double>, int> ma;
vector<double> v;
int n;
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%lf%lf", &a[i].x, &a[i].y);
  }
  for (int i = 0; i < n; i++) {
    for (int j = i + 1; j < n; j++) {
      double xx, yy;
      if (a[i].x == a[j].x) {
        xx = 1e9;
        yy = a[i].x;
      } else {
        xx = (a[i].y - a[j].y) / (a[i].x - a[j].x);
        yy = a[i].y - xx * a[i].x;
      }
      if (ma[pair<double, double>(xx, yy)] == 0) {
        v.push_back(xx);
        ma[pair<double, double>(xx, yy)] = 1;
      }
    }
  }
  int ans = 0;
  for (int i = 0; i < v.size(); i++) {
    for (int j = i + 1; j < v.size(); j++) {
      if (v[i] != v[j]) ans++;
    }
  }
  printf("%d\n", ans);
  return 0;
}
