길이가 $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$ 증가한다.
입력
첫째 줄에 수열의 크기 $N$이 주어진다. ($1 \le N \le 500{,}000$)
둘째 줄에는 $A_1, A_2, \ldots, A_N$이 주어진다. ($-10^9 \le A_i \le 10^9$)
셋째 줄에는 쿼리의 개수 $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$) $4$번 쿼리는 한 번 이상 주어진다.
출력
$4$번 쿼리의 결과를 한 줄에 하나씩 출력한다.
Sample
Input
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
0 3 4 5 5 4