Софтвіль#3848

Софтвіль

0,2 секунди
256 мегабайтів
Легка

У селі Софтвіль існує традиційний спосіб розробки програмного забезпечення: у перший день програміст пише кілька рядків коду (принаймні один рядок), а кожного наступного дня додає ще один рядок до попередньої кількості.

Коли житель Софтвіля досягає років, він повинен пройти ініціацію, створивши з нуля складну програму. Ця програма має однаковий код для всіх і складається з рівно рядків. Кожному жителю потрібна різна кількість днів, щоб завершити цю програму. Проте правило залишається незмінним: щодня програміст пише на один рядок більше, ніж попереднього дня.

Вам надано інформацію про те, скільки днів знадобилося кожному жителю для написання своєї програми. Ваше завдання — визначити найменше можливе значення , тобто кількість рядків у програмі.

Вхідні дані

Перша строка вхідного файлу містить число (1 \le m \le 1000) — кількість жителів Софтвіля. Друга строка містить чисел, які вказують на кількість днів, протягом яких кожен житель працював над своєю програмою. Усі числа в другій строці є додатними цілими числами, меншими за 2^{63}.

Вихідні дані

Вихід повинен містити єдине число — найменше можливе значення для . Якщо вхідні дані не можуть бути узгоджені для жодного значення , ви повинні вивести . Інакше гарантовано, що найменше можливе значення для менше за 2^{63}.

Приклади

Приклад 1

Loading
Loading