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.
""" Vanya and Triangles """
def slope(pointA, pointB):
    return (pointB[1] - pointA[1]) / (pointB[0] - pointA[0]) if pointB[0] != pointA[0] else float('inf')


def CF552D():
    N = int(input())
     # Base case and input validation
    if N < 3: return 0
    
    points = [tuple(map(int, input().split())) for _ in range(N)]
    
    total = N * (N - 1) * (N - 2) // 6

    # Compute the slope between each pair
    for i in range(N):
        # Sort them
        slopes =sorted([slope(points[i], points[j]) for j in range(i)])
        k = 0
        for j in range(len(slopes)-1):
            if slopes[j] == slopes[j + 1]:
                k += 1
            else:
                k = 0
            total -= k
    return total

res = CF552D()
print("Triangles : ", res)