Задача №113253. Метро

Олимпиада завершена. Режим дорешивания.

Мэр столицы Котоляндии, наконец, согласился построить в городе метро. Теперь его ожидает чрезвычайно важная задача — сэкономить как можно больше денег на его постройке.

Метро будет состоять из определенного количества станций, соединенных двусторонними тоннелями. Между каждой парой станций должен быть путь по тоннелям (возможно, через другие станции), при этом количество построенных тоннелей должно быть минимально возможным. Заметьте, что при таких условиях существует единственный путь между каждой парой станций.

Пассажиры должны будут заплатить некоторое количество денег для того, чтобы войти в метро на определенной станции. При этом для разных станций эта сумма может быть разной. А именно: для некоторой станции x стоимость входа (в гривнах) будет равна максимальному количеству тоннелей, которые пассажир должен проехать для того, чтобы доехать от станции x к любой другой станции y .

Кроме того, мэр города очень придирчив к числам. Известно, что мэр любит числа a 1 , ..., a n , а также ненавидит числа b 1 , ..., b m . Мэр не согласится на постройку метро, если в стоимости прохода в метро хотя бы на одной из станций будет хотя бы одно число, которое он ненавидит, а также если не будет ни одной станции с стоимостью прохода, равной какому-то числу, которое он любит.

Напишите программу, которая по заданным числовым предпочтениям мэра будет находить минимальное количество станций, которое может содержать метро, или определять, что сеть с заданными требованиями построить невозможно.

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

Первая строка входного файла содержит два целых числа n и m — количество чисел, которые мэр любит и ненавидит соответственно. Вторая строка содержит список из n целых чисел, разделенных пробелами, — список чисел, которые мэр любит. Третья строка содержит в аналогичном формате список из m чисел, которые мэр ненавидит.

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

В единственной строке выходного файла выведите минимальное количество станций, которое может содержать метро. Если невозможно построить сеть c заданными требованиями, выведите единственное число - 1 .

Примечание

  1. 1 ≤ n ≤ 2000 , 1 ≤ m ≤ 2000 , 1 ≤ a i ≤ 2000 , 1 ≤ b i ≤ 2000 .( 50 баллов)
  2. 1 ≤ n ≤ 100 000 , 1 ≤ m ≤ 100 000 , 1 ≤ a i ≤ 100 000 , 1 ≤ b i ≤ 100 000 .( 50 баллов)
Примеры
Входные данные
2 3
4 7
13 1 3
Выходные данные
8
Входные данные
2 1
4 7
6
Выходные данные
-1
Сдать: для сдачи задач необходимо войти в систему