[传智杯 #3 决赛] 序列

题目背景

disangan233 正在数数,他希望你帮他记录数数的序列,并完成一些操作。

题目描述

你有一个长为 $n$ 的序列 $a$,现在要对其进行 $m$ 次操作。操作分为两种: 1. 给定两个整数 $l,r$,表示询问 $l$ 到 $r$ 的最大连续子段和。 2. 给定三个整数 $l,r,k$,表示将 $l$ 到 $r$ 的 $a_i$ 都按位或上一个 $k$。 对于所有数据,$n,m\leq 10^5$,$-2^{30}\leq a_i,k<2^{30}$,$1\leq l\leq r\leq n$。 注意:负数按照 32 位补码取按位或。

输入输出格式

输入格式


输入共 $m+2$ 行。 第 $1$ 行输入 $2$ 个正整数 $n,m$。 第 $2$ 行输入 $n$ 个整数 $a_1\ldots a_n$。 接下来 $m$ 行,每行先输入 $1$ 个正整数 $op$,$op=1$ 输入 $2$ 个整数 $l,r$ 表示一次询问,否则输入 $3$ 个整数 $l,r,k$ 表示一次修改。

输出格式


输出共若干行,每行共 $1$ 个整数,表示询问的答案。

输入输出样例

输入样例 #1

15 15
512 -65 33554432 32 8194 13 16 2 67108872 131072 -8192 8194 16 2048 4096 
1 3 5
1 10 10
2 1 7 671367424
1 8 14
1 5 11
2 13 13 335579137
2 2 13 5376
1 2 5
2 5 6 8392768
1 1 2
2 2 14 201335872
2 1 14 0
1 11 12
1 8 12
1 4 9

输出样例 #1

33562658
131072
67242012
2081350441
2047680290
671367936
201340226
805489228
3373416393