#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=500010;
int n,m,a[N];
LL c1[N],c2[N];
int lowbit(int x)
{
return x&-x;
}
void add(LL c[],int x,LL y)
{
for(int i=x;i<=n;i+=lowbit(i))
c[i]+=y;
}
LL Query(LL c[],int x)
{
LL res=0;
for(int i=x;i;i-=lowbit(i))
res+=c[i];
return res;
}
LL sum(int x)
{
return Query(c1,x)*(x+1)-Query(c2,x);
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
{
int b=a[i]-a[i-1];
add(c1,i,b);
add(c2,i,(LL)b*i);
}
for(int i=1;i<=m;i++)
{
int x,y,k;
char op[2];
scanf("%s%d%d",op,&x,&y);
if(*op=='C')
{
scanf("%d",&k);
add(c1,x,k);
add(c2,x,k*x);
add(c1,y+1,-k);
add(c2,y+1,-k*(y+1));
}
else printf("%lld\n",sum(y)-sum(x-1));
}
return 0;
}