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.
# n, p, q = [int(x) for x in input().split(" ")]
# string = input()
# s = list()
# for i in range(n + 1):
#     for j in range(n + 1):
#         if n == (i * p + j * q):
#             print(i + j)
#             index = 0
#             for k in range(i):
#                 s.append(string[index:index + p])
#                 index += p
#             for k in range(j):
#                 s.append(string[index:index + q])
#                 index += q
#             for k in s:
#                 print(k)
#             exit()
#
# print(-1)
# from collections import Counter
# import operator
#
# n = int(input())
# string = input()
# lst = ['A', 'G', 'C', 'T']
# count = Counter(string)
# questions = None
# if count.get('?'):
#     questions = count.pop("?")
# try:
#     temp_mx = max(count.items(), key=operator.itemgetter(1))[1]
# except:
#     pass
# if not questions:
#     for i in lst:
#         if i not in count:
#             print('===')
#             exit()
#     for k, v in count.items():
#         if v < temp_mx:
#             print('===')
#             exit()
#     print(string)
#     exit()
# if n % 4 != 0:
#     print('===')
#     exit()
# mx = n // 4
# if questions == n:
#
#     temp = n // 4
#     for i in lst:
#         string = string.replace("?", i, temp)
#     print(string)
#     exit()
# if n < 4 * temp_mx:
#     print('===')
#     exit()
# for i in lst:
#     if i not in count:
#         count[i] = 0
# for k, v in count.items():
#     if v < mx:
#         temp = mx - v
#         string = string.replace("?", k, temp)
#         v += temp
# print(string)


# def get_prefix(string):
#     lst = [0]*len(string)
#     index = 0
#     for i in range(1, len(string)):
#         while index > 0 and string[index] != string[i]:
#             index = lst[index - 1]
#         if string[index] == string[i]:
#             index += 1
#             lst[i] = index
#         else:
#             lst[i] = index
#     return lst
#
#
# in_c = input()
# lst = get_prefix(in_c)
# length = lst[len(in_c) - 1]
# found = None
# if length != 0:
#     for j in range(2):
#         for i in range(1, len(in_c) - 1):
#             if length == lst[i]:
#                 found = True
#                 break
#         if not found:
#             length = lst[length-1]
#             if length == 0:
#                 break
#         else:
#             break
# if not found or length == 0:
#     print("Just a legend")
# else:
#     print(in_c[0:length])


class Point:
    def __init__(self, x, y):
        self.x = int(x)
        self.y = int(y)

    def __repr__(self):
        return f"PointL x:{self.x} y:{self.y}"


# s = set()
# n, han_x, han_y = [int(x) for x in input().split()]
# lst = list()
# flag = False
# han = Point(han_x, han_y)
#
# for i in range(n):
#     lst.append(Point(*input().split(" ")))
#     if lst[i].x - han.x == 0:
#         flag = True
#     else:
#         sloap = (lst[i].y - han.y) / (lst[i].x - han_x)
#         s.add(sloap)
#
# print(len(s)+flag)

def Collinear(point1, point2, point3):
    print(point1, point2, point3)
    if point1.x == point2.x == point3.x:
        return True
    elif point1.y == point2.y == point3.y:
        return True
    x_1 = 1 if (point1.x - point2.x) == 0 else (point1.x - point2.x)
    x_2 = 1 if (point2.x - point3.x) == 0 else (point2.x - point3.x)
    x_3 = 1 if (point1.x - point3.x) == 0 else (point1.x - point3.x)
    if (point1.y - point2.y) / x_1 == (point2.y - point3.y) /x_2 == (point1.y - point3.y) / x_3:
        return True
    else:
        return False


n = int(input())
lst = list()
for i in range(n):
    lst.append(Point(*input().split(" ")))
res = 0
for i in range(n):
    for j in range(i+1, n):
        for k in range(j + 1, n):
            if not Collinear(lst[i], lst[j], lst[k]):
                res += 1
print(res)
