Олимпиадный тренинг

Задача . D. Pudding Monsters


Задача

Темы: дп *2800

Вы когда-нибудь играли в Pudding Monsters? В этой задаче используется упрощенная одномерная модель этой игры.

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

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

Например, если на полоске стоят три монстра в клетках 1, 4 и 5. Тогда возможны только четыре хода: отправить монстра в клетке 1 в минус бесконечность, отправить блок монстров в клетках 4 и 5 в плюс бесконечность, швырнуть монстра 1 вправо (он остановится в клетке 3), швырнуть блок монстров в клетках 4 и 5 влево (они остановятся в клетках 2 и 3).

Некоторые клетки отмечены звездами. Это особенные клетки. Цель игры — сделать так, чтобы на максимально возможном количестве особенных клеток стояли монстры.

Вам заданы номера особенных клеток полоски, а также начальное положение всех монстров. Какое максимальное количество особых клеток можно занять монстрами?

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

В первой строке записаны два целых числа n и m (1 ≤ n ≤ 105; 1 ≤ m ≤ 2000) — количество монстров на полоске и количество особенных клеток.

Во второй строке записаны n различных целых чисел — номера клеток с монстрами, в третьей строке записаны m различных целых чисел — номера особенных клеток. Гарантируется, что все номера клеток целые положительные числа не превышающие 2·105.

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

Выведите единственное целое число — максимальное количество особых клеток, которое можно занять монстрами.


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

time 5000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя