Given a sequence $A_1, A_2, \ldots, A_N$ of length $N$. Write a program that processes the following queries:
1 L R X: For all $L \le i \le R$, apply $A_i = A_i + X$.2 L R S E: Replace the interval $[L, R]$ of $A$ with the numbers in $[S, E]$. That is, if the resulting sequence is $B$, then $B_L = A_S, B_{L+1} = A_{S+1}, \ldots, B_R = A_E$, and for all $i$ not in $L \le i \le R$, $B_i = A_i$.3 L R: Output $A_L + A_{L+1} + \ldots + A_R$.
Input
The first line contains the size of the sequence $N$ ($1 \le N \le 200{,}000$).
The second line contains $A_1, A_2, \ldots, A_N$ ($-10^6 \le A_i \le 10^6$).
The third line contains the number of queries $M$ ($1 \le M \le 200{,}000$).
The next $M$ lines each contain a query. ($1 \le L \le R \le N$, $1 \le S \le E \le N$, $E-S = R-L$, $-10^6 \le X \le 10^6$) Type 3 queries appear at least once.
Output
Print the results of type 3 queries, one per line.
Examples
Input
5 1 2 3 4 5 5 3 1 5 1 1 3 1 3 1 3 2 1 3 2 4 3 1 5
Output
15 9 20