EduBrick

N. Нули по остаткам

1000 мс · 256 МБ · всё или ничего

То же разбиение по величине шага, что в классной задаче N, но вместо суммы спрашивается количество нулей среди элементов с индексами нужного остатка.

Таблица zeros[m][r] для m≤nm \le \sqrt{n} строится и обновляется так же, как таблица сумм. Разница в том, что обновление теперь не всегда что-то меняет.

Формат ввода

В первой строке - числа nn и qq (1≤n,q≤1051 \le n, q \le 10^5).

Во второй строке - nn чисел aia_i (0≤ai≤1090 \le a_i \le 10^9).

В следующих qq строках - операции. «1 i v» - присвоить ai=va_i = v (1≤i≤n1 \le i \le n, 0≤v≤1090 \le v \le 10^9). «2 m r» - сколько нулей среди aia_i с i mod m=ri \bmod m = r (1≤m≤n1 \le m \le n, 0≤r<m0 \le r < m).

Индексы нумеруются с единицы.

Формат вывода

Для каждого запроса второго типа выведите количество нулей в отдельной строке.

Примеры

ввод
5 5
0 2 0 0 5
2 2 0
2 2 1
1 3 7
2 2 1
2 1 0
вывод
1
2
1
2
ввод
6 3
0 0 0 0 0 0
2 3 0
2 6 1
2 1 0
вывод
2
1
6
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.