#include<bits/stdc++.h>
using namespace std;
const int N=100010;
long long a[N],sum[N],add[N];
int L[500],R[500],pos[N];
int m,n,t;
void change(int l,int r,long long d){
int p=pos[l],q=pos[r];
if(q==p){
for(int i=l;i<=r;i++){
a[i]+=d;
}
sum[p]+=d*(r-l+1);
}
else{
for(int i=p+1;i<=q-1;i++){
add[i]+=d;
}
for(int i=l;i<=R[p];i++){
a[i]+=d;
}
sum[p]+=d*(R[p]-l+1);
for(int i=L[q];i<=r;i++){
a[i]+=d;
}
sum[q]+=d*(r-L[q]+1);
}
}
long long ask(int l,int r){
long long ans=0;
int p=pos[l],q=pos[r];
if(p==q){
for(int i=l;i<=r;i++){
ans+=a[i];
}
ans+=add[p]*(r-l+1);
}
else{
for(int i=p+1;i<=q-1;i++){
ans+=sum[i]+add[i]*(R[i]-L[i]+1);
}
for(int i=l;i<=R[p];i++){
ans+=a[i];
}
ans+=add[p]*(R[p]-l+1);
for(int i=L[q];i<=r;i++){
ans+=a[i];
}
ans+=add[q]*(r-L[q]+1);
}
return ans;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
}
t=sqrt(n);
for(int i=1;i<=t;i++){
L[i]=(i-1)*t+1;
R[i]=i*t;
}
if(R[t]<n) t++,L[t]=R[t-1]+1,R[t]=n;
for(int i=1;i<=t;i++){
for(int j=L[i];j<=R[i];j++){
pos[j]=i;
sum[i]+=a[j];
}
}
while(m--){
char op[3];
int l,r,d;
scanf("%s%d%d",&op,&l,&r);
if(op[0]=='C'){
scanf("%d",&d);
change(l,r,d);
}
else printf("%lld\n",ask(l,r));
}
return 0;
}