Vanya got bored and he painted *n* distinct points on the plane. After that he connected all the points pairwise and saw that as a result many triangles were formed with vertices in the painted points. He asks you to count the number of the formed triangles with the non-zero area.
The first line contains integer *n* (1 ≤ *n* ≤ 2000) — the number of the points painted on the plane. 

Next *n* lines contain two integers each *x*<sub class="lower-index">*i*</sub>, *y*<sub class="lower-index">*i*</sub> ( - 100 ≤ *x*<sub class="lower-index">*i*</sub>, *y*<sub class="lower-index">*i*</sub> ≤ 100) — the coordinates of the *i*-th point. It is guaranteed that no two given points coincide.
from math import gcd


def main():
  n = int(input())
  points = [list(map(int, input().split())) for _ in range(n)]
  res = n * (n - 1) * (n - 2) // 6
  mp = {}
  for i in range(n):
    mp.clear()
    for j in range(i + 1, n):
      dx, dy = points[i][0] - points[j][0], points[i][1] - points[j][1]
      g = gcd(dx, dy)
      dx //= g
      dy //= g
      res -= mp.get((dx, dy), 0)
      mp[(dx, dy)] = mp.get((dx, dy), 0) + 1
  print(res)


main()
