Сяо Q играет с компьютером в пошаговую карточную игру под названием «Абсолютная защита».
У Сяо Q есть колода из $n$ карт, содержащая два типа карт: карты атаки и карты защиты. В начале игры Сяо Q берёт с верха колоды $k \ (1 \le k \le n)$ карт как стартовую руку, затем он сыграет с компьютером несколько раундов сражений.
В начале каждого раунда Сяо Q берёт с верха колоды $2$ карты. Особый случай — если в колоде осталась только $1$ карта, он берёт только 1 карту. Один раунд состоит из двух ходов:
- В первом ходу Сяо Q — атакующий, а компьютер — защитник;
- Во втором ходу Сяо Q — защитник, а компьютер — атакующий.
В каждом ходу атакующий обязан сыграть одну атакующую карту из руки для атаки, защитник обязан сыграть одну защитную карту для защиты. Игрок, который не может сыграть нужную карту, немедленно проигрывает.
У компьютера бесконечное количество карт атаки и защиты, то есть в каждом ходу он всегда может сыграть нужную карту. Чтобы уравнять шансы, Сяо Q может использовать особое умение: когда он является защитником, он может сыграть атакующую карту из руки как защиту. Это умение можно использовать только раз в $3$ раунда, то есть после его использования в одном раунде, оно становится недоступным в следующих двух раундах.
Цель Сяо Q по правилам игры — выжить под яростными атаками компьютера, то есть достичь состояния, при котором колода полностью опустела после окончания какого-либо раунда. В частности, если колода пуста уже в начале игры, Сяо Q немедленно выигрывает. Сяо Q хочет узнать минимальное стартовое число карт $k$, необходимое для достижения цели.
Сяо Q считает эту задачу слишком простой, поэтому он добавил $q$ операций изменения. В $i$-й операции $(1 \le i \le q)$ задаётся положительное число $x_i$, указывающее, что тип $x_i$-й карты (считая от верха к низу колоды) изменяется: атакующая карта превращается в защитную, а защитная — в атакующую. Вам нужно вычислить минимальное значение $k$ до и после каждой операции, чтобы Сяо Q достиг цели.
Формат ввода
Вход читается из стандартного потока ввода.
Эта задача содержит несколько наборов тестов.
Первая строка содержит два неотрицательных целых числа $c, t$, обозначающих номер тестпоинта и количество наборов тестов. $c = 0$ означает, что тестпоинт — это пример.
Затем следуют $t$ наборов тестов. Для каждого набора:
Первая строка содержит два неотрицательных целых числа $n, q$ — размер колоды и количество изменений.
Вторая строка содержит строку длины $n$: $s_1 \dots s_n$, обозначающую колоду от верха к низу. Здесь $s_i = 0$ означает, что $i$-я карта — атакующая, $s_i = 1$ — защитная.
Далее следуют $q$ строк: $i + 2$-я строка $(1 \le i \le q)$ содержит целое число $x_i$ — индекс изменяемой карты (от верха к низу).
Формат вывода
Выводите в стандартный поток вывода.
Для каждого набора тестов выведите строку из $q + 1$ положительных целых чисел $k_0, k_1, \dots, k_q$, где $k_0$ — ответ для начальной колоды, $k_i$ — ответ после $i$-й операции. Эти значения обозначают минимальное стартовое число карт, необходимое для победы.
Пример
Ввод
0 3
5 1
01010
4
7 0
0001000
10 0
0001010000
Вывод
1 1
3
2
Пояснение
В этом примере 3 набора тестов.
Для первого:
Начальная колода — $01010$. Если взять $k = 1$, возможна следующая стратегия:
- Рука: ${0}$;
- Берём 2 карты, играем по одной атакующей и защитной — рука остаётся ${0}$;
- Ещё 2 карты — снова по одной атакующей и защитной — рука ${0}$, колода пуста.
Минимальное $k$ — это $1$, значит $k_0 = 1$.
После изменения колода — $01000$. Аналогично, при $k = 1$ можно выжить, используя специальное умение.
Значит $k_1 = 1$.
Для второго набора:
При $k = 3$:
- Рука: ${0, 0, 0}$;
- Игра продолжается по правилам и с использованием умения — колода опустеет.
Доказывается, что $k < 3$ не даст возможности победить, значит ответ — $3$.
Для третьего набора:
При $k = 2$:
- Рука: ${0, 0}$;
- В процессе игры с умением можно опустошить колоду.
Доказывается, что $k < 2$ недостаточно. Ответ — $2$.
Пример 2
См. файлы ex_2.in и ex_2.ans в каталоге загрузки — они соответствуют условиям тестпоинта $2$.
Пример 3
См. ex_3.in и ex_3.ans — соответствуют условиям тестпоинтов $5\sim7$.
Пример 4
См. ex_4.in и ex_4.ans — соответствуют условиям тестпоинтов $9, 10$.
Пример 5
См. ex_5.in и ex_5.ans — соответствуют условиям тестпоинта $11$.
Пример 6
См. ex_6.in и ex_6.ans — соответствуют условиям тестпоинтов $12\sim14$.
Ограничения
Пусть $N, Q$ — сумма $n$ и $q$ во всех тестах. Для всех тестов выполнено:
- $1 \le t \le 10^{4}$;
- $1 \le n \le 2 \times 10^{5}$, $N \le 5 \times 10^{5}$;
- $0 \le q \le 2 \times 10^{5}$, $Q \le 5 \times 10^{5}$;
- $s_i \in {0, 1}$;
- $1 \le x_i \le n$.
| Тест | $n \leq$ | $q \leq$ | $N, Q \leq$ | Особые свойства |
|---|---|---|---|---|
| $1 $ | $20$ | $20$ | $60$ | Нет |
| $2 $ | $10^2$ | $10^2$ | $10^3$ | Нет |
| $3 $ | $3{,}000$ | $3{,}000$ | $10^4$ | Нет |
| $4 $ | $3{,}000$ | $3{,}000$ | $10^4$ | Нет |
| $5 $ | $10^5$ | $0$ | $3 \times 10^5$ | Нет |
| $6 $ | $10^5$ | $0$ | $3 \times 10^5$ | Нет |
| $7 $ | $10^5$ | $0$ | $3 \times 10^5$ | Нет |
| $8 $ | $2 \times 10^5$ | $200$ | $5 \times 10^5$ | Нет |
| $9 $ | $10^5$ | $10^5$ | $3 \times 10^5$ | AB |
| $10$ | $10^5$ | $10^5$ | $3 \times 10^5$ | AB |
| $11$ | $10^5$ | $10^5$ | $3 \times 10^5$ | AC |
| $12$ | $10^5$ | $10^5$ | $3 \times 10^5$ | AD |
| $13$ | $10^5$ | $10^5$ | $3 \times 10^5$ | AD |
| $14$ | $10^5$ | $10^5$ | $3 \times 10^5$ | AD |
| $15$ | $10^5$ | $10^5$ | $3 \times 10^5$ | E |
| $16$ | $10^5$ | $10^5$ | $3 \times 10^5$ | E |
| $17$ | $10^5$ | $10^5$ | $3 \times 10^5$ | E |
| $18$ | $10^5$ | $10^5$ | $3 \times 10^5$ | Нет |
| $19$ | $10^5$ | $10^5$ | $3 \times 10^5$ | Нет |
| $20$ | $2 \times 10^5$ | $2 \times 10^5$ | $5 \times 10^5$ | Нет |
Особые свойства:
- A: $s_i$ равномерно случайны и независимы;
- B: все $x_i$ различны и $s_{x_i} = 1$;
- C: все $x_i$ различны и $s_{x_i} = 0$;
- D: $x_i$ равномерно случайны и независимы;
- E: $1 \le k_i \le 45$ для всех $0 \le i \le q$.