Роботи
На деякому заводі вирішили модернізувати виробництво і закупили для цього роботів. Так як для обробки деталі потрібно виконання двох операцій, роботи також були двох типів: першу операцію виконували роботи типу А, а другу – роботи типу В. Щоб зекономити на покупці роботів, було вирішено купити не нових роботів останньої моделі, а вже таких, що були у використанні. В результаті, час, який різні роботи витрачали на виконання однієї і тієї ж операції, істотно відрізнявся, що призвело до труднощів у плануванні робіт.
Складіть програму, яка за заданим набором роботів обох типів визначає, за який мінімальний час вони зможуть опрацювати певну кількість деталей.
Вхідні дані
У першому рядку задано натуральне число N, 1 ≤ N ≤ 100000 – кількість деталей, які потрібно опрацювати.
У другому рядку міститься натуральне число Na, 1 ≤ Na ≤ 1000 – кількість роботів, що виконують першу операцію.
У третьому рядку через пропуск задано Na натуральних чисел A_i, 1 ≤ A_i ≤ 100 – час, який витрачає i-ий робот типу А на виконання операції.
У четвертому рядку задано натуральне число Nb, 1 ≤ Nb ≤ 1000 – кількість роботів, які виконують другу операцію.
У п'ятому рядку задано через пропуск Nb натуральних чисел B_i, 1 ≤ B_i ≤ 100 – час, який затрачає i-ий робот типу В на виконання операції.
Вихідні дані
У єдиному рядку вивести одне ціле число – мінімальний час, за який всі N деталей будуть оброблені спочатку роботом типу A, а потім роботом типу В. Часом передачі деталі від робота типа А роботу типу В знехтувати.