给定一个长度为 $N$ 的数列 $A_1, A_2, \ldots, A_N$。请编写程序处理以下查询:
1 L R X:对于所有 $L \le i \le R$,执行 $A_i = \min(A_i, X)$。2 L R:输出 $\max(A_L, A_{L+1}, \ldots, A_R)$。3 L R:输出 $A_L + A_{L+1} + \ldots + A_R$。
输入格式
第一行包含数列的长度 $N$。($1 \le N \le 1{,}000{,}000$)
第二行包含 $A_1, A_2, \ldots, A_N$。($0 \le A_i < 2^{31}$)
第三行包含查询的个数 $M$。($1 \le M \le 1{,}000{,}000$)
接下来 $M$ 行,每行一个查询。($1 \le L \le R \le N$,$0 \le X < 2^{31}$)第 2 种和第 3 种查询至少出现一次。
输出格式
对于每个第 2 种和第 3 种查询,输出结果,每个结果占一行。
样例
样例输入 1
5 1 2 3 4 5 5 2 1 5 3 1 5 1 3 5 3 2 1 5 3 1 5
样例输出 1
5 15 3 12