no_of_stakes = int(input())

stakes = [tuple(map(int, input().split(" "))) for _ in range(no_of_stakes)]

# print(sorted(stakes))
# print(sorted(stakes, key=lambda x: (x[1], x[0])))
stakes.sort()
a, b = stakes[no_of_stakes // 2 - 1:no_of_stakes // 2 + 1]
stakes2 = [x for x in stakes if x != a and x != b]
no_of_stakes2 = no_of_stakes - 2

c, d = sorted(stakes2, key=lambda x: (x[1], x[0]))[no_of_stakes2 // 2 - 1:no_of_stakes2 // 2 + 1]


def rectangle_area(a, b, c, d):
    ab = ((b[0] - a[0]) ** 2 + (b[1] - a[1]) ** 2) ** (1/2)
    ac = ((c[0] - a[0]) ** 2 + (c[1] - a[1]) ** 2) ** (1/2)
    ad = ((d[0] - a[0]) ** 2 + (d[1] - a[1]) ** 2) ** (1/2)

    if max(ab, ac, ad) == ab:
        return ac * ad
    if max(ab, ac, ad) == ac:
        return ab * ad
    else:
        return ab * ac

# print(a, b, c, d)

print(round(rectangle_area(a, b, c, d)))