#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
#define lowbit(x) (x & (-x))
const int N = 2055;
int n, m;
char data;
struct BIT {
int c[N][N];
inline void add(int x, int y, int k) {
int ty = y;
while(x <= n) {
y = ty;
while(y <= m) {
c[x][y] += k;
y += lowbit(y);
} x += lowbit(x);
}
}
inline int get(int x, int y) {
int ty = y, res = 0;
while(x) {
y = ty;
while(y) {
res += c[x][y];
y -= lowbit(y);
} x -= lowbit(x);
} return res;
}
} tree[4];
inline void Add(int x, int y, int k) {
tree[0].add(x, y, k);
tree[1].add(x, y, k * x);
tree[2].add(x, y, k * y);
tree[3].add(x, y, k * x * y);
}
inline int Get(int x, int y) {
return tree[0].get(x, y) * (x * y + x + y + 1) -
tree[1].get(x, y) * (y + 1) -
tree[2].get(x, y) * (x + 1) +
tree[3].get(x, y);
}
inline int read() {
int w = 1, s = 0; char c;
while(!isdigit(c = getchar())) if(c == '-') w = -1;
while(isdigit(c)) s = (s << 1) + (s << 3) + (c & 15), c = getchar();
return s * w;
}
inline void mian() {
getchar();
n = read(); m = read();
while(~scanf("%c", &data)) {
int a, b, c, d, k;
a = read(); b = read(); c = read(); d = read();
if(data == 'L') {
k = read();
Add(a, b, k); Add(a, d + 1, -k);
Add(c + 1, d + 1, k); Add(c + 1, b, -k);
} else printf("%d\n", Get(c, d) - Get(a - 1, d) - Get(c, b - 1) + Get(a - 1, b - 1));
}
}
int main() {
mian();
}
RT 蒟蒻求助