from bisect import bisect_left
def max_rectangle_area(lengths, queries):
lengths.sort(reverse=True)
n = len(lengths)
for q in queries:
index, new_length = q
index -= 1 # Приводим индекс к нумерации с нуля
lengths[index] = new_length
lengths.sort(reverse=True)
max_area = 0
for i in range(n - 1):
j = bisect_left(lengths, lengths[i]) # Ищем первый элемент, строго больший lengths[i]
if j < n:
max_area = max(max_area, lengths[i] * lengths[j])
print(max_area)
# Пример использования
lengths = [1, 1, 2, 2, 3, 3]
queries = [(5, 2), (6, 2)]
max_rectangle_area(lengths, queries)