407003 - 简单数组操作

给你N个整数A1,A2,…,AN,有两种操作,一种是给任意区间的数加一个值,一种是询问某区间的数值的和。

Input

第一行两个整数N和Q(1≤N,Q≤100 000)。 第二行是N个数即A1,A2,…,AN(-1 000 000 000≤Ai≤1 000 000 000)。 随后是Q行操作。 “C a b c”表示给Aa,Aa+1,… , Ab区间的每个数加上一个c(-10 000≤c≤10 000)。 “Q a b”表示询问Aa,Aa+1,… ,Ab的和,保证结果不超过32位整数范围。

Output

对每一个询问操作输出结果。

Examples

Input

10 5
1 2 3 4 5 6 7 8 9 10
Q 4 4
Q 1 10
Q 2 4
C 3 6 3
Q 2 4

Output

4
55
9
15
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题