Если вы используете C++, пожалуйста, выберите в качестве компилятора при отправке решения: C++14 (GCC 6-32) или C++17 (GCC 7-32). ×

A. TL
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Валера решил подготовить раунд для Codesecrof. У него уже есть одна задача, в которой он хочет выставить ограничение по времени (TL).

Валера уже написал n верных решений. Для каждого верного решения он знает время его работы (в секундах). Также Валера написал m неправильных решений, и для каждого неправильного решения он знает время его работы (в секундах).

Предположим, Валера установит в задаче TL v секунд. Тогда будем говорить, что решение пройдет системное тестирование, если время его работы не больше v секунд. Также будем говорить, что решение пройдет системное тестирование с «запасом», если время его работы a секунд удовлетворяет неравенству 2a ≤ v.

В результате, Валера решил выставить такой TL v секунд, что выполнятся все условия:

  1. v — целое положительное число;
  2. все верные решения пройдут системное тестирование;
  3. хотя бы одно верное решение пройдет системное тестирование с «запасом»;
  4. все неверные решения не пройдут системное тестирование;
  5. значение v минимально среди всех TL, для которых верны условия 1, 2, 3, 4.

Помогите Валере, найдите наиболее подходящий TL или определите, что такого TL не существует.

Входные данные

В первой строке записаны два целых числа n, m (1 ≤ n, m ≤ 100). Во второй строке записаны n целых чисел через пробел a1, a2, ..., an (1 ≤ ai ≤ 100) — время работы каждого из n верных решений в секундах. В третьей строке записаны m целых чисел через пробел b1, b2, ..., bm (1 ≤ bi ≤ 100) — время работы каждого из m неверных решений в секундах.

Выходные данные

Если подходящее значение TL существует, выведите его. Иначе, выведите -1.

Примеры
Входные данные
3 6
4 5 2
8 9 6 10 7 11
Выходные данные
5
Входные данные
3 1
3 4 5
6
Выходные данные
-1