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 itertools import combinations

n = int(input())
point = [[int(i) for i in input().split()] for i in range(n)]
nc2 = [0]+[int(1/2*x*(x+1)) for x in range(n)]
comb = list(combinations(point,2))
line = dict()
ans = n*(n-1)*(n-2)/6

def equation(x1,y1,x2,y2): # 두 점을 지나는 일차방정식 y = ax+b의 a와 b를 반환
    if x1==x2 : return x1
    a = (y2-y1)/(x2-x1)
    b = (x2*y1-x1*y2)/(x2-x1)
    return (a,b)

for c in comb:
    a,b = c
    try:
        line[equation(a[0],a[1],b[0],b[1])]+=1
    except KeyError:
        line[equation(a[0],a[1],b[0],b[1])]=1

for v in line.values():
    ans-=nc2[nc2.index(v)-1]

print(int(ans))
