s = 6
result = 1000 * 1000
N = int(input()) # получаем ввод с клавиатуры и приводим к целому числу
prev_min = [0] * s # при s = 6, [0, 0, 0, 0, 0, 0]
prev_min[0] = float(input()) # первый элемент списка из 6 элементов делаем равным float(ввод с клавиатуры)
for i in range(1, s) # от 1 до 5
# запись в i-ячейку меньшего из ввода с клавиатуры и предыдущего элемента списка
prev_min[i] = min(float(input()), prev_min[i-1])
for i in range(s, N): # от 6 до N-1
next_num = float(input()) # ввод с клавиатуры приводим к float
# присваиваем минимальное из result и произведения next_num * prev_min[i % s]
# i % 2 - остаток от деления = проверка числа на чётность
# 3 % 2 = 1, 5 % 2 = 1, 6 % 2 = 0, то есть индекс всегда будет 0 или 1
result = min(result, next_num * prev_min[i % s]
# присваивание в prev_min[0/1] минимального из prev_min[0/1] и next_num
prev_min[i % s] = min(prev_min[(i - 1) % s], next_num)
print(result) # вывод результат