与えられた長さ $N$ の数列 $A_1, A_2, \ldots, A_N$ と、初期値 $B_i = 0$ の長さ $N$ の数列 $B$ に対して、以下のクエリを実行するプログラムを作成せよ。
1 L R X: すべての $L \le i \le R$ について、$A_i = A_i + X$ とする。2 L R Y: すべての $L \le i \le R$ について、$A_i = \max(A_i, Y)$ とする。3 L R Y: すべての $L \le i \le R$ について、$A_i = \min(A_i, Y)$ とする。4 L R: $B_L + B_{L+1} + \ldots + B_R$ を出力する。
種類 1, 2, 3 のクエリによって $A_i$ が変化した場合、$B_i$ の値が $1$ 増加する。
入力
1 行目には数列のサイズ $N$ が与えられる。($1 \le N \le 500{,}000$)
2 行目には $A_1, A_2, \ldots, A_N$ が与えられる。($-10^9 \le A_i \le 10^9$)
3 行目にはクエリの数 $M$ が与えられる。($1 \le M \le 500{,}000$)
続く $M$ 行の各行はクエリを表す。($1 \le L \le R \le N$, $-2{,}000 \le X \le 2{,}000$, $-10^9 \le Y \le 10^9$) 少なくとも 1 つの種類 4 のクエリが存在する。
出力
各種類 4 のクエリに対して、結果を 1 行に出力せよ。
入出力例
入力例 1
5 1 2 3 4 5 11 4 1 5 1 1 3 3 4 1 5 2 2 5 5 4 1 5 3 1 4 5 4 1 4 2 1 5 0 4 1 5 3 1 5 1 4 1 2
出力例 1
0 3 4 5 5 4