#467. 序列

序列

题目描述

对于一个序列 A,A, 有三种操作:

  1. 给出 L,R,X,L, R, X, 对于 LiR,L \leq i \leq R,AiA_{i} 更新为 AiA_{i} and XX
  2. 给出 L,R,X,L, R, X, 对于 LiR,L \leq i \leq R,AiA_{i} 更新为 AiA_{i} or XX
  3. 给出 L,R,L, R, 询问 $M a x\left(A_{L}, A_{L+1}, \cdots, A_{R-1}, A_{R}\right)$

输入格式

第一行两个数字 nnqq,表示序列长度和操作及询问数。

接下来一行 nn 个整数,表示序列 AA

接下来 qq 行,每行第一个数 TyTy,表示是哪种操作或询问。

如果 Ty=1Ty = 1,那么紧接着有三个数 L,R,X,L, R, X, \quad 表示对于 LiRL \leq i \leq RAiA_{i} 更新为 AiA_{i} and XX

如果 Ty=2Ty = 2 ,那么紧接着有三个数 L,R,X,L, R, X, \quad 表示对于 LiRL \leq i \leq RAiA_{i} 更新为 AiA_{i} or XX

如果 Ty=3,T y=3, 那么紧接着有两个数 L,R,L, R, 询问 $M a x\left(A_{L}, A_{L+1}, \cdots, A_{R-1}, A_{R}\right)$

输出格式

对于每个询问,输出一行一个整数表示答案。

样例

5 8 
1 3 2 5 4 
3 1 3 
2 1 1 5 
3 1 3 
1 1 4 6 
2 3 4 1 
3 2 3 
2 2 3 4 
3 1 5
3
5
3
7

数据范围与提示

$1 \leq n, q \leq 200000,0 \leq A_{i}, X<2^{20}, 1 \leq L \leq R \leq n$