길이가 $N$인 수열 $A_1, A_2, \ldots, A_N$이 주어진다. 이때, 다음 쿼리를 수행하는 프로그램을 작성하시오.
1 L R X: 모든 $L \le i \le R$에 대해서 $A_i = A_i + X$를 적용한다.2 L R S E: $A$의 $[L, R]$ 구간을 $[S, E]$에 있는 수로 변경한다. 즉, 이 쿼리의 결과를 수열 $B$라고 했을 때, $B_L = A_S, B_{L+1} = A_{S+1}, \ldots, B_R = A_E$가 되는 것이고, $L \le i \le R$에 포함되지 않은 모든 $i$의 $B_i = A_i$이다.3 L R: $A_L + A_{L+1} + \ldots + A_R$을 출력한다.
입력
첫째 줄에 수열의 크기 $N$이 주어진다. ($1 \le N \le 200{,}000$)
둘째 줄에는 $A_1, A_2, \ldots, A_N$이 주어진다. ($-10^6 \le A_i \le 10^6$)
셋째 줄에는 쿼리의 개수 $M$이 주어진다. ($1 \le M \le 200{,}000$)
넷째 줄부터 $M$개의 줄에는 쿼리가 한 줄에 하나씩 주어진다. ($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$) 3번 쿼리는 한 번 이상 주어진다.
출력
3번 쿼리의 결과를 한 줄에 하나씩 출력한다.
예제
입력 1
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
출력 1
15 9 20