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 collections import defaultdict
import math
import sys, os, io
input = io.BytesIO(os.read(0, os.fstat(0).st_size)).readline

n = int(input())
xy = [tuple(map(int, input().split())) for _ in range(n)]
ng = 0
for i in range(n):
    xi, yi = xy[i]
    cnt = defaultdict(lambda : 0)
    for j in range(n):
        if i == j:
            continue
        xj, yj = xy[j]
        u, v = xi - xj, yi - yj
        g = math.gcd(abs(u), abs(v))
        u //= g
        v //= g
        if u < 0:
            u *= -1
            v *= -1
        if u == 0 and v < 0:
            v *= -1
        cnt[(u, v)] += 1
    for i in cnt.values():
        ng += i * (i - 1) // 2
ans = n * (n - 1) * (n - 2) // 6 - ng // 3
print(ans)