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.
def main():
    from math import gcd
    n, l, cache = int(input()), [], {(0, 0): 80400}
    res = n * (n - 1) * (n - 2) // 6
    for i in range(n):
        cnt = {}
        newx, newy = map(int, input().split())
        for x, y in l:
            x -= newx
            y -= newy
            u = cache.get(x, y)
            if u is None:
                g = gcd(x, y)
                u = cache[x, y] = 80400 + (x * 401 + y) // (g if x > 0 or not x and y > 0 else -g)
            v = cnt.get(u)
            if v is None:
                cnt[u] = 1
            else:
                res -= v
                cnt[u] += v + 1
        l.append((newx, newy))
    print(res)


if __name__ == '__main__':
    main()
