D. Кодовый замок
ограничение по времени на тест
1 second
ограничение по памяти на тест
256 megabytes
ввод
stdin
вывод
stdout

Наконец лиса Кейл прибыла к своему замку!

Она должна ввести код для входа в свой замок. Консоль ввода, подключенная к её замку, немного необычна.

Консоль ввода — это прямоугольник размера 1 × n, разделенный на n одинаковых квадратных панелей. Они пронумерованы от 1 до n слева направо. Каждая панель имеет состояние ON (включено) или OFF (выключено). Изначально все панели выключены. Она может войти в её замок, тогда и только тогда, когда x1-я, x2-я, ..., xk-я панели находятся во включенном состоянии, а остальные панели находятся в выключенном состоянии.

Ей дан массив a1, a2, ..., al. За каждый ход она может выполнять следующую операцию: выбрать индекс i (1 ≤ i ≤ l), выбрать последовательные ai панелей, и изменить состояния выбранных ai панелей (т.е. ON → OFF, OFF → ON).

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

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

В первой строке содержится три целых числа n, k и l (1 ≤ n ≤ 10000, 1 ≤ k ≤ 10, 1 ≤ l ≤ 100), разделенных пробелами.

Во второй строке содержится k целых чисел x1, x2, ..., xk (1 ≤ x1 < x2 < ... < xk ≤ n), разделенных пробелом.

В третьей строке содержится l целых чисел a1, a2, ..., al (1 ≤ ai ≤ n), разделенных пробелом. Возможно, что некоторые элементы последовательности a совпадают.

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

Выведите наименьшее число ходов, необходимое для того, чтобы ввести код. Если это невозможно, выведите -1.

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

Один из возможных способов ввести код в первом примере: на первом ходу выбрать 1-ую, 2-ую, 3-ую панели и изменить их состояния. На втором ходу можно выбрать 5-ую, 6-ую, 7-ую, 8-ую, 9-ую панели и изменить их состояния.