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

Задача . C. Обычная условно-бесплатная игра


Вы играете в игру, в которой вашему персонажу нужно преодолевать различные препятствия. Например, сейчас вам нужно спуститься с утеса. Высота утеса равна \(h\), и на каждой целой высоте \(x\) от \(1\) до \(h\) есть выдвижная платформа.

Каждая платформа либо спрятана в утесе, либо выдвинута. Изначально выдвинуто \(n\) платформ на высотах \(p_1, p_2, \dots, p_n\). Платформа на высоте \(h\) выдвинута (и на ней изначально стоит персонаж).

Если ваш персонаж стоит на выдвинутой платформе на высоте \(x\), то он может нажать на специальный рычаг, который меняет положение двух платформ: на высотах \(x\) и \(x - 1\). Другими словами, платформа, на которой вы стоите, спрячется в утес, а платформа ниже поменяет свое состояние: если она была выдвинута, она спрячется, а если она была спрятана — выдвинется. Во втором случае вы безопасно приземлитесь на нее. Заметьте, что нажать на рычаг — это единственный способ спуститься с платформы.

Ваш персонаж довольно хрупок, так что он может безопасно падать с высоты не более \(2\). Другими словами, падение с платформы \(x\) на платформу \(x - 2\) безопасно, но падение с платформы \(x\) на платформу \(x - 3\) (или ниже) смертельно.

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

Какое минимальное количество кристаллов вам нужно купить для того, чтобы безопасно спуститься на землю, которая находится на высоте \(0\)?

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

Первая строка содержит число \(q\) (\(1 \le q \le 100\)) — количество запросов. Каждый запрос состоит из двух строк.

Первая строка каждого запроса содержит два числа \(h\) и \(n\) (\(1 \le h \le 10^9\), \(1 \le n \le \min(h, 2 \cdot 10^5)\)) — высота утеса и количество выдвинутых платформ.

Вторая строка каждого запроса содержит \(n\) чисел \(p_1, p_2, \dots, p_n\) (\(h = p_1 > p_2 > \dots > p_n \ge 1\)) — выдвинутые платформы в порядке убывания их высоты.

Сумма всех \(n\) по всем запросам не превосходит \(2 \cdot 10^5\).

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

На каждый запрос выведите одно число — минимально возможное количество кристаллов, которое вам нужно купить для безопасного спуска на землю (которая находится на высоте \(0\)).


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

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

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