#include <bits/stdc++.h>
using namespace std;
int lowbit(int x){return x&-x;}
int n,m;
struct tree{
int tr[2050][2050];
void add(int x,int y,int v){
for(int i=x;i<=n;i+=lowbit(i))
for(int j=y;j<=m;j+=lowbit(j)) tr[i][j]+=v;
}
int query(int x,int y){
int ans=0;
for(int i=x;i;i-=lowbit(i))
for(int j=y;j;j-=lowbit(j)) ans+=tr[i][j];
return ans;
}
} t,ti,tj,tij;
int upd(int x,int y,int v){
t.add(x,y,v),ti.add(x,y,v*x),tj.add(x,y,v*y),tij.add(x,y,v*x*y);
}
int query(int x,int y){
return t.query(x,y)*(x*y+x+y+1)+ti.query(x,y)*(-y-1)+tj.query(x,y)*(-x-1)+tij.query(x,y);
}
int main(){
char op;cin>>op>>n>>m;
while(cin>>op){
int a1,a2,b1,b2;cin>>a1>>b1>>a2>>b2;
if(op=='L'){
int v;cin>>v;
upd(a1,b1,v),upd(a1,b2+1,-v),upd(a2+1,b1,-v),upd(a2+1,b2+1,v);
}else{
cout<<query(a2,b2)-query(a1-1,b2)-query(a2,b1-1)+query(a1-1,b1-1)<<'\n';
}
}
}