#ds501. 等差数列加

等差数列加

等差数列加

题目描述

给你一个序列a1,a2,…,ana_1, a_2, \dots, a_n,一开始都是00。

你需要支持qq个操作:

  1. 1 x y d,对数组中所有下标i≡y(modx)i \equiv y \pmod x的位置加上dd。
  2. 2 x,单点询问axa_x的值。

输入格式

第一行两个整数n,q(1≤n,q≤2×105)n, q (1\leq n, q\leq 2\times 10^5)。

接下来qq行,每行两个操作。保证1≤x≤n,0≤y<x,1≤d≤1091\leq x\leq n, 0\leq y < x, 1\leq d\leq 10^9。

输出格式

对于每个操作,输出一个数表示答案。

样例输入

5 6
1 2 1 3
1 3 2 5
2 3
2 5
1 5 0 6
2 5

样例输出

3
8
14