#Lutece2076. 甲乙丙丁戊己庚辛壬癸

甲乙丙丁戊己庚辛壬癸

Migrated from Lutece 2076 甲乙丙丁戊己庚辛壬癸

All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.

Description

给出NN个数,初始值全为00,有以下三种操作:

1.将第xx个数增加yy.

2.将第xx个数变成yy.

3.求第xx个数到第yy个数的和。

Input

第一行一个整数N(1<=N<=100000)N(1<=N<=100000),代表数的个数。

第二行一个整数Q(1<=Q<=100000)Q(1<=Q<=100000),代表询问的个数。

接下来QQ行,每行第一个整数opop.

如果op=1op=1,输入x,yx,y,表示将第xx个数增加y(1<=x<=N,1<=y<=10000)y(1<=x<=N,1<=y<=10000).

如果op=2op=2,输入x,yx,y,表示将第xx个数变成y(1<=x<=N,1<=y<=10000)y(1<=x<=N,1<=y<=10000).

如果op=3op=3,输入x,yx,y,表示求第xx个数到第yy个数的和(1<=x<=y<=N)(1<=x<=y<=N)

Output

对于每次33号操作,一行输出答案。

Samples

3
5
1 1 1
3 1 3
1 2 4
2 1 2
3 1 2
1
6