E. Циклический баланс
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Рассмотрим строку $$$t=t_1t_2\ldots t_m$$$, состоящую из символов 0 и 1. Назовём парами соседних символов строки $$$t$$$ пары $$$t_1t_2, t_2t_3, \ldots, t_{m-1}t_m$$$, а также пару $$$t_mt_1$$$. Последняя пара соединяет конец строки с её началом, поэтому всего рассматривается ровно $$$m$$$ пар. Если в строке только один символ, рассматривается только пара $$$t_1 t_1$$$.

Назовём строку $$$t$$$ циклически сбалансированной, если среди её пар соседних символов количества пар 00, 01, 10 и 11 одинаковы.

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

Дана бинарная строка $$$s$$$ и $$$q$$$ запросов. В каждом запросе заданы индексы $$$l$$$ и $$$r$$$. Найдите стоимость подстроки $$$s_l s_{l+1}\ldots s_r$$$.

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

Первая строка содержит два целых числа $$$n$$$ и $$$q$$$ ($$$1 \le n, q \le 3 \cdot 10^5$$$) — длину строки и количество запросов.

Вторая строка содержит $$$s$$$ — последовательность длины $$$n$$$, состоящую из символов 0 и/или 1.

Далее следуют $$$q$$$ строк; $$$i$$$-я из них содержит два целых числа $$$l_i$$$ и $$$r_i$$$ ($$$1 \le l_i \le r_i \le n$$$) — границы подстроки для очередного запроса.

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

Выведите $$$q$$$ целых чисел: $$$i$$$-е число должно быть равно стоимости подстроки из $$$i$$$-го запроса.

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