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])))

a, b = sorted(stakes)[no_of_stakes // 2 - 1:no_of_stakes // 2 + 1]
c, d = sorted(stakes, key=lambda x: (x[1], x[0]))[no_of_stakes // 2 - 1:no_of_stakes // 2 + 1]

if a == c or a == d:
    c, _, _, d = sorted(stakes, key=lambda x: (x[1], x[0]))[no_of_stakes // 2 - 2:no_of_stakes // 2 + 2]


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)))