

def find_min_points(p, i):
    res = []
    max_val = 999999999999999999999999
    for point in p:
        if point[i] < max_val:
            res = []
            max_val = point[i]
            res.append(point)
        elif point[i] == max_val:
            res.append(point)
    return res


def find_max_points(p, i):
    res = []
    max_val = -999999999999999999999999
    for point in p:
        if point[i] > max_val:
            res = []
            max_val = point[i]
            res.append(point)
        elif point[i] == max_val:
            res.append(point)
    return res

def find_min(points, i):
    min_val = 9999999999999999
    res = points[0]
    for point in points:
        if point[i] < min_val:
            min_val = point[i]
            res = point
    return res

def find_max(points, i):
    min_val = -9999999999999999
    res = points[0]
    for point in points:
        if point[i] > min_val:
            min_val = point[i]
            res = point
    return res
points = set()
N = int(input())
for _ in range(N):
    res = input().split()
    points.add((int(res[0]), int(res[1])))

while(len(points) > 4):
    min_x = find_min_points(points, 0)
    min_y = find_min_points(points, 1)
    max_x = find_max_points(points, 0)
    max_y = find_max_points(points, 1)
    allfields = min_x + min_y + max_x + max_y
    to_remove = set(allfields)
    points = points - to_remove

min_points_x = find_min_points(points, 0)
min_points_y = find_min_points(points, 1)
max_points_x = find_max_points(points, 0)
max_points_y = find_max_points(points, 1)

X = max_points_x[0][0] - min_points_x[0][0]
Y = max_points_y[0][1] - min_points_y[0][1]

min1 = (min_points_y[0][0] - min_points_x[0][0]) * (min_points_x[0][1] - min_points_y[0][1])
min2 = (max_points_x[0][0] - min_points_y[0][0]) * (max_points_x[0][1] - min_points_y[0][1])

ans = (X * Y) - min1 - min2
print(ans)
