Прошло много лет, и на вечеринке снова встретились *n* друзей. С момента последней встречи техника шагнула далеко вперёд, появились фотоаппараты с автоспуском, и теперь не требуется, чтобы один из друзей стоял с фотоаппаратом, и, тем самым, оказывался не запечатлённым на снимке.

Упрощенно процесс фотографирования можно описать следующим образом. На фотографии каждый из друзей занимает прямоугольник из пикселей: в стоячем положении *i*-й из них занимает прямоугольник ширины *w*<sub class="lower-index">*i*</sub> пикселей и высоты *h*<sub class="lower-index">*i*</sub> пикселей. Но также, при фотографировании каждый человек может лечь, и тогда он будет занимать прямоугольник ширины *h*<sub class="lower-index">*i*</sub> пикселей и высоты *w*<sub class="lower-index">*i*</sub> пикселей.

Общая фотография будет иметь размеры *W* × *H*, где *W* — суммарная ширина всех прямоугольников-людей, а *H* — максимальная из высот. Друзья хотят определить, какую минимальную площадь может иметь общая фотография. Помогите им в этом.
В первой строке следует целое число *n* (1 ≤ *n* ≤ 1000) — количество друзей.

В последующих *n* строках следуют по два целых числа *w*<sub class="lower-index">*i*</sub>, *h*<sub class="lower-index">*i*</sub> (1 ≤ *w*<sub class="lower-index">*i*</sub>, *h*<sub class="lower-index">*i*</sub> ≤ 1000), обозначающие размеры прямоугольника, соответствующего *i*-му из друзей.
import math
import sys
from bisect import bisect_right, bisect_left, insort_right
from collections import Counter, defaultdict
from heapq import heappop, heappush
from itertools import accumulate, permutations, combinations
from sys import stdout

R = lambda: map(int, input().split())
sys.stdin = open('input.txt')
sys.stdout = open('output.txt', 'w')
n = int(input())
arr = []
for i in range(n):
    h, w = R()
    arr.append([h, w])
dp = [[math.inf] * 1001 for i in range(n)] + [[0] * 1001]
for i in range(n):
    for j in range(1001):
        if j >= max(arr[i]):
            dp[i][j] = min(dp[i][j], dp[i - 1][j] + j * min(arr[i]))
        elif j >= min(arr[i]):
            dp[i][j] = min(dp[i][j], dp[i - 1][j] + j * max(arr[i]))
print(min(dp[n - 1]))