编程题
### 问题描述
给定一个数组 $x$,有以下操作:
* `1 l r k`,将数组 $x$ 的 $[l,r]$ 区间内所有数替换为 $min(x_i,k)$
* `2 l r k`,将 $[l,r]$ 区间内所有数加上 $k$
* `3 l r`,求 $[l,r]$ 区间内的和
* `4 l r`,求 $[l,r]$ 区间最大值
### 输入格式
输入的第一行为两个正整数 $n,m$,分别表示数组大小和操作次数。
接下来 $m$ 行,每行三个或四个整数,含义见问题描述。
### 输出格式
对于操作 $3$ 和 $4$,每个操作输出一行,每行仅包括一个整数,含义见问题描述。
### 样例输入
```text
5 5
2 6 8 4 7
1 2 3 6
3 1 3
1 3 5 2
2 3 4 8
4 1 3
```
### 样例输出
```text
14
10
```
### 评测数据规模
对于 $30$% 的评测数据,$1\leq n,m \leq 50,0\leq x_i,k \leq 5000$。
对于 $100$% 的评测数据,$1\leq n,m\leq 5\cdot 10^5,1\le l,r\le n,-10^9\leq x_i,k \leq 10^9$。
本题由于读入数据量较大,请使用较快的读入方法。