Given a sequence $A_1, A_2, \ldots, A_N$ of length $N$, and a sequence $B$ of length $N$ initially with $B_i = 0$. Write a program to execute the following queries:
1 L R X: For all $L \le i \le R$, set $A_i = A_i + X$.2 L R Y: For all $L \le i \le R$, set $A_i = \max(A_i, Y)$.3 L R Y: For all $L \le i \le R$, set $A_i = \min(A_i, Y)$.4 L R: Output $B_L + B_{L+1} + \ldots + B_R$.
Whenever a query of type 1, 2, or 3 causes $A_i$ to change, the value of $B_i$ is increased by $1$.
Input
The first line contains the sequence size $N$. ($1 \le N \le 500{,}000$)
The second line contains $A_1, A_2, \ldots, A_N$. ($-10^9 \le A_i \le 10^9$)
The third line contains the number of queries $M$. ($1 \le M \le 500{,}000$)
The next $M$ lines each describe a query. ($1 \le L \le R \le N$, $-2{,}000 \le X \le 2{,}000$, $-10^9 \le Y \le 10^9$) There is at least one query of type 4.
Output
For each query of type 4, output a single line with the result.
Examples
Input 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
Output 1
0 3 4 5 5 4