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.
import math
from collections import defaultdict
class Solution:
    def maxPoints(self, points):
        ans=0
        n=len(points)
        if n<=2:
            return ans
        def customise_gcd(x,y):
            if x==0 and y==0:
                return 1
            if x==0:
                return y
            elif y==0:
                return x
            else:
                return math.gcd(x,y)
        def substitube(y,x):
            if x==0:
                y=1
            elif y==0:
                x=1
            elif (x<0 and y<0) or x<0:
                return y*(-1),x*(-1)
            return y,x
        cnt=0
        for i in range(n):
            mx=0
            rp=0
            dt=defaultdict(int)
            for j in range(i+1,n):
                if points[i]==points[j]:
                    rp+=1
                else:
                    delta_y=points[j][1]-points[i][1]
                    delta_x=points[j][0]-points[i][0]
                    gd=customise_gcd(abs(delta_y),abs(delta_x))
                    delta_y,delta_x=substitube(delta_y//gd,delta_x//gd)
                    dt[(delta_y,delta_x)]+=1
            for val in dt.values():
                if val>=2:
                    cnt+=(val*(val-1))//2
        ttl=n*(n-1)*(n-2)//6
        ans=ttl-cnt
        
        return ans

I=lambda: map(int,input().split())
ob=Solution()
n=int(input())
points=[]
for i in range(n):
    x,y=I()
    points+=[[x,y]]
print(ob.maxPoints(points))
    
                