#include<iostream>
using namespace std;
#define lowbit(x) x&(-x)
int n,m;
const int N=2050;
int c1[N][N],c2[N][N],c3[N][N],c4[N][N];
void update(int x,int y,int num){
for(int i=x;i<=n;i+=lowbit(i)){
for(int j=y;j<=m;j+=lowbit(j)){
c1[i][j]+=num;
c2[i][j]+=num*i;
c3[i][j]+=num*j;
c4[i][j]+=num*i*j;
}
}
return ;
}
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+=(x+1)*(y+1)*c1[i][j]-(y+1)*c2[i][j]-(x+1)*c3[i][j]+c4[i][j];
}
}
return ans;
}
signed main(){
char c;
int x1,y1,x2,y2,z;
while(cin>>c){
if(c=='X'){
cin>>n>>m;
}
else if(c=='L'){
cin>>x1>>y1>>x2>>y2>>z;
update(x1,y1,z);
update(x1,y2+1,-z);
update(x2+1,y1,-z);
update(x2+1,y2+1,z);
}
else{
cin>>x1>>y1>>x2>>y2;
cout<<query(x2,y2)-query(x2,y1-1)-query(x1-1,y2)+query(x1-1,y1-1)<<endl;
}
}
return 0;
}