Задача №115400. Качественный отдых

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

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

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

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

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

Первая строка входных данных содержит два целых числа \(n\) и \(q\) (\(1 \le n \le 100\,000\), \(1 \le q \le n+1\)).

Следующая строка содержит строку \(s\) длины \(n\), состоящую из символов « 0 » и « 1 » — график стажировки. В этой строке символом « 0 » обозначается рабочий день, а символом « 1 » — выходной.

В следующих \(q\) строках находятся \(q\) целых чисел \(k_i\) (\(0 \leq k_i \leq n\)) — количество отгулов в \(i\)-м запросе. Гарантируется, что каждое значение \(k_i\) не превосходит количества рабочих дней в графике стажировки.

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

Выведите \(q\) целых чисел — для каждого значения \(k_i\) определите наибольшее количество качественных дней отдыха, которое может получить Прохор за время стажировки, выбрав \(k_i\) дополнительных выходных дней.

Система оценки

Дополнительные ограничения
Подзадача Баллы \(n\) \(q\) дополнительно Необх. подзадачи
1 6 Все дни графика — рабочие
2 11 Выходные и рабочие дни чередуются, первый день стажировки — выходной
3 12 \(q = 1\) \(k_1 = 0\)
4 19 \(q = 1\) \(k_1 = 1\)
5 11 \(n \le 15\) У
6 17 \(n \le 1000\) У, 5
7 13 В графике нет двух выходных подряд 1, 2
8 11 У, 1–7

Примечание

В первом примере все три дня стажировки являются рабочими. Если взять менее двух отгулов, дней качественного отдыха получить невозможно. Для \(k_3=2\) или \(k_4=3\) можно выбрать отгулами первые \(k_j\) дней стажировки, и все они будут днями качественного отдыха.

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

Примеры
Входные данные
3 4
000
0
1
2
3
Выходные данные
0
0
2
3
Входные данные
4 3
1010
0
1
2
Выходные данные
0
3
4
Входные данные
11 6
11010101001
5
2
0
1
4
3
Выходные данные
11
7
2
5
10
9
Сдать: для сдачи задач необходимо войти в систему