#fishception

def line_ints(): return list(map(int, input().strip().split()))

n = int(input())

points = []
for _ in range(n):
    x, y = line_ints()
    points.append((x, y))

erased = [False] * n

sorted_x = sorted(range(n), key=lambda x: points[x][0])
sorted_y = sorted(range(n), key=lambda x: points[x][1])

def shift_l(sx, x_l):
    while x_l < n and erased[sx[x_l]]:
        x_l += 1
    
    return x_l

def shift_r(sx, x_r):
    while x_r >= 0 and erased[sx[x_r - 1]]:
        x_r -= 1
    
    return x_r


x_l = y_l = 0
x_r = y_r = n

left = n
while left > 4:
    x_l = shift_l(sorted_x, x_l)
    x_r = shift_r(sorted_x, x_r)
    y_l = shift_l(sorted_y, y_l)
    y_r = shift_r(sorted_y, y_r)

    erased[sorted_x[x_l]] = True
    y_l = shift_l(sorted_y, y_l)
    y_r = shift_r(sorted_y, y_r)
    
    erased[sorted_x[x_r - 1]] = True
    y_r = shift_r(sorted_y, y_r)
    y_l = shift_l(sorted_y, y_l)

    erased[sorted_y[y_l]] = True
    erased[sorted_y[y_r - 1]] = True

    left -= 4

outs = []
for i, (x, y) in enumerate(points):
    if not erased[i]:
        outs.append((x, y))


x, y = outs[0]
dists = []
for xx, yy in outs[1:]:
    dists.append(((x - xx)**2 + (y - yy)**2) ** (1/2))

dists = sorted(dists)
print(round(dists[0] * dists[1]))