#SDNU1454. 操作格子

操作格子

Description

有nn个格子,从左到右放成一排,编号为1−n1-n。 共有mm次操作,有33种操作类型:
1.1.修改一个格子的权值
2.2.求连续一段格子权值和
3.3.求连续一段格子的最大值。 对于每个2、32、3操作输出你所求出的结果。

Format

Input

第一行22个整数n,m。n,m。
接下来一行nn个整数表示nn个格子的初始权值。 接下来mm行,每行33个整数p,x,y,p,x,y, pp表示操作类型 p=1p=1时表示修改格子xx的权值为yy
p=2p=2时表示求区间[x,y][x,y]内格子权值和
p=3p=3时表示求区间[x,y][x,y]内格子最大的权值
(对于2020%的数据n<=100,m<=200。n < = 100,m < = 200。
对于5050%的数据n<=5000,m<=5000。n < = 5000,m < = 5000。
对于100100%的数据$1 < = n < = 100000,m < = 100000,0 < = 格子权值 < = 10000。)$

Output

有若干行,行数等于p=2p=2或33的操作总数。 每行11个整数,对应了每个p=2p=2或33操作的结果。

Samples

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