長さ $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$ を出力する。
入力
1 行目には数列の長さ $N$ が含まれる。($1 \le N \le 1{,}000{,}000$)
2 行目には $A_1, A_2, \ldots, A_N$ が含まれる。($0 \le A_i < 2^{31}$)
3 行目にはクエリの個数 $M$ が含まれる。($1 \le M \le 1{,}000{,}000$)
次の $M$ 行にはそれぞれクエリが 1 つずつ含まれる。($1 \le L \le R \le N$, $0 \le X < 2^{31}$) タイプ 2 およびタイプ 3 のクエリは少なくとも 1 回は現れる。
出力
タイプ 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