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 math import sqrt, inf, gcd, ceil
import queue


# -------- info --------

# https://codeforces.com/profile/Wolxy

# -------- sys --------

def next_int() -> int:
    return int(input())

def next_ints() -> map:
    return map(int, input().split(' '))

def next_list() -> list:
    return list(map(int, input().split(' ')))

def dis(from_loc, to_loc, euclidean = True) -> int:
    result = 0
    if euclidean:
        for i in range(min(len(from_loc), len(to_loc))):
            result += (from_loc[i] - to_loc[i]) * (from_loc[i] - to_loc[i])
    else:
        for i in range(min(len(from_loc), len(to_loc))):
            result += from_loc[i] - to_loc[i]
    return result


def product(from_loc, first_loc, second_loc) -> int:
    vector1 = (first_loc[0] - from_loc[0], first_loc[1] - from_loc[1])
    vector2 = (second_loc[0] - from_loc[0], second_loc[1] - from_loc[1])
    return vector1[0] * vector2[1] - vector2[0] * vector1[1]

# -------- functions[clearable] --------


# -------- solve[clearable] --------

def solve() -> None:
    n = next_int()
    lines = dict()
    ls = []
    dic = dict()
    for _ in range(n):
        ls.append(tuple(next_ints()))
    for i in range(n):
        for j in range(i + 1, n):
            p = ls[i]
            q = ls[j]
            g = gcd(q[0] - p[0], q[1] - p[1])
            a, b = (q[1] - p[1]) // g, (q[0] - p[0]) // g
            c = b * q[1] - a * q[0]
            if (a, b, c) not in dic.keys():
                dic[(a, b, c)] = 2
            else:
                dic[(a, b, c)] += 2
    # print(list(dic.items()))
    total = n * (n - 1) * (n - 2) // 6
    for value in dic.values():
        # print(total)
        if value >= 3:
            x = ceil(sqrt(value))
            total -= x * (x - 1) * (x - 2) // 6
    print(total)


# -------- main --------


T = 1
# T = int(input())
for _ in range(T):
    solve()
