#include <bits/stdc++.h> // NeOWami
using namespace std;
#define ft first
#define sc second
#define int long long
const int N = 1e5 + 5;
int n, m, k;
vector<vector<int>> pos, bit;
vector<int> posX;
struct query {
int type, l, r, u, v;
};
query Q[N];
inline void fakeUpX(int l) {
posX.push_back(l);
}
inline void fakeGetRectX(int l, int u) {
posX.push_back(u);
posX.push_back(l - 1);
}
inline void compressX() {
posX.push_back(-1);
sort(posX.begin(), posX.end());
posX.erase(unique(posX.begin(), posX.end()), posX.end());
pos.resize(posX.size(), {});
bit.resize(posX.size(), {});
}
inline void fakeUp(int u, int v) {
for (int i = lower_bound(posX.begin(), posX.end(), u) - posX.begin(); i < pos.size(); i += i &- i) pos[i].push_back(v);
}
inline void fakeGet(int u, int v) {
for (int i = lower_bound(posX.begin(), posX.end(), u) - posX.begin(); i; i -= i &- i) pos[i].push_back(v);
}
inline void fakeGetRect(int l, int r, int u, int v) {
fakeGet(u, v);
fakeGet(l - 1, v);
fakeGet(u, r - 1);
fakeGet(l - 1, r - 1);
}
inline void compress() {
for (int i = 1; i < pos.size(); i++) {
pos[i].push_back(-1);
sort(pos[i].begin(), pos[i].end());
pos[i].erase(unique(pos[i].begin(), pos[i].end()), pos[i].end());
bit[i].resize(pos[i].size(), 0);
}
}
inline void update(int u, int v, int t) {
for (int i = lower_bound(posX.begin(), posX.end(), u) - posX.begin(); i < pos.size(); i += i &- i) {
for (int j = lower_bound(pos[i].begin(), pos[i].end(), v) - pos[i].begin(); j < pos[i].size(); j += j &- j) {
bit[i][j] += t;
}
}
}
inline int get(int u, int v) {
int ans = 0;
for(int i = lower_bound(posX.begin(), posX.end(), u) - posX.begin(); i; i -= i &- i) {
for (int j = lower_bound(pos[i].begin(), pos[i].end(), v) - pos[i].begin(); j > 0; j -= j &- j) {
ans += bit[i][j];
}
}
return ans;
}
int getRect(int l, int r, int u, int v) {
return get(u, v) - get(l - 1, v) - get(u, r - 1) + get(l - 1, r - 1);
}
using pii = pair<int, int>;
map<pii, int> val;
signed main() {
cin.tie(NULL)->sync_with_stdio(false);
if(ifstream("QUERY.inp")) {
freopen("QUERY.inp", "r", stdin);
freopen("QUERY.out", "w", stdout);
}
cin >> n >> m >> k;
for (int i = 1; i <= k; i++) {
char c; cin >> c;
if (c == 'S') {
Q[i].type = 1;
cin >> Q[i].l >> Q[i].r >> Q[i].u;
fakeUpX(Q[i].l);
}
else {
Q[i].type = 2;
cin >> Q[i].l >> Q[i].r >> Q[i].u >> Q[i].v;
fakeGetRectX(Q[i].l, Q[i].u);
}
}
compressX();
for (int i = 1; i <= k; i++) {
if (Q[i].type == 1) fakeUp(Q[i].l, Q[i].r);
else fakeGetRect(Q[i].l, Q[i].r, Q[i].u, Q[i].v);
}
compress();
for (int i = 1; i <= k; i++) {
if (Q[i].type == 1) {
if (val.count({Q[i].l, Q[i].r})) {
Q[i].u -= val[{Q[i].l, Q[i].r}];
}
update(Q[i].l, Q[i].r, Q[i].u);
val[{Q[i].l, Q[i].r}] += Q[i].u;
}
else {
cout << getRect(Q[i].l, Q[i].r, Q[i].u, Q[i].v) << "\n";
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IC8vIE5lT1dhbWkKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgZnQgZmlyc3QKI2RlZmluZSBzYyBzZWNvbmQKI2RlZmluZSBpbnQgbG9uZyBsb25nCmNvbnN0IGludCBOID0gMWU1ICsgNTsKCmludCBuLCBtLCBrOwp2ZWN0b3I8dmVjdG9yPGludD4+IHBvcywgYml0Owp2ZWN0b3I8aW50PiBwb3NYOwpzdHJ1Y3QgcXVlcnkgewogICAgaW50IHR5cGUsIGwsIHIsIHUsIHY7Cn07CnF1ZXJ5IFFbTl07CgppbmxpbmUgdm9pZCBmYWtlVXBYKGludCBsKSB7CiAgICBwb3NYLnB1c2hfYmFjayhsKTsKfQppbmxpbmUgdm9pZCBmYWtlR2V0UmVjdFgoaW50IGwsIGludCB1KSB7CiAgICBwb3NYLnB1c2hfYmFjayh1KTsKICAgIHBvc1gucHVzaF9iYWNrKGwgLSAxKTsKfQppbmxpbmUgdm9pZCBjb21wcmVzc1goKSB7CiAgICBwb3NYLnB1c2hfYmFjaygtMSk7CiAgICBzb3J0KHBvc1guYmVnaW4oKSwgcG9zWC5lbmQoKSk7CiAgICBwb3NYLmVyYXNlKHVuaXF1ZShwb3NYLmJlZ2luKCksIHBvc1guZW5kKCkpLCBwb3NYLmVuZCgpKTsKICAgIHBvcy5yZXNpemUocG9zWC5zaXplKCksIHt9KTsKICAgIGJpdC5yZXNpemUocG9zWC5zaXplKCksIHt9KTsKfQoKaW5saW5lIHZvaWQgZmFrZVVwKGludCB1LCBpbnQgdikgewogICAgZm9yIChpbnQgaSA9IGxvd2VyX2JvdW5kKHBvc1guYmVnaW4oKSwgcG9zWC5lbmQoKSwgdSkgLSBwb3NYLmJlZ2luKCk7IGkgPCBwb3Muc2l6ZSgpOyBpICs9IGkgJi0gaSkgcG9zW2ldLnB1c2hfYmFjayh2KTsKfQoKaW5saW5lIHZvaWQgZmFrZUdldChpbnQgdSwgaW50IHYpIHsKICAgIGZvciAoaW50IGkgPSBsb3dlcl9ib3VuZChwb3NYLmJlZ2luKCksIHBvc1guZW5kKCksIHUpIC0gcG9zWC5iZWdpbigpOyBpOyBpIC09IGkgJi0gaSkgcG9zW2ldLnB1c2hfYmFjayh2KTsKfQoKaW5saW5lIHZvaWQgZmFrZUdldFJlY3QoaW50IGwsIGludCByLCBpbnQgdSwgaW50IHYpIHsKICAgIGZha2VHZXQodSwgdik7CiAgICBmYWtlR2V0KGwgLSAxLCB2KTsKICAgIGZha2VHZXQodSwgciAtIDEpOwogICAgZmFrZUdldChsIC0gMSwgciAtIDEpOwp9CgppbmxpbmUgdm9pZCBjb21wcmVzcygpIHsKICAgIGZvciAoaW50IGkgPSAxOyBpIDwgcG9zLnNpemUoKTsgaSsrKSB7CiAgICAgICAgcG9zW2ldLnB1c2hfYmFjaygtMSk7CiAgICAgICAgc29ydChwb3NbaV0uYmVnaW4oKSwgcG9zW2ldLmVuZCgpKTsKICAgICAgICBwb3NbaV0uZXJhc2UodW5pcXVlKHBvc1tpXS5iZWdpbigpLCBwb3NbaV0uZW5kKCkpLCBwb3NbaV0uZW5kKCkpOyAgIAogICAgICAgIGJpdFtpXS5yZXNpemUocG9zW2ldLnNpemUoKSwgMCk7CiAgICB9Cn0KaW5saW5lIHZvaWQgdXBkYXRlKGludCB1LCBpbnQgdiwgaW50IHQpIHsKICAgIGZvciAoaW50IGkgPSBsb3dlcl9ib3VuZChwb3NYLmJlZ2luKCksIHBvc1guZW5kKCksIHUpIC0gcG9zWC5iZWdpbigpOyBpIDwgcG9zLnNpemUoKTsgaSArPSBpICYtIGkpIHsKICAgICAgICBmb3IgKGludCBqID0gbG93ZXJfYm91bmQocG9zW2ldLmJlZ2luKCksIHBvc1tpXS5lbmQoKSwgdikgLSBwb3NbaV0uYmVnaW4oKTsgaiA8IHBvc1tpXS5zaXplKCk7IGogKz0gaiAmLSBqKSB7CiAgICAgICAgICAgIGJpdFtpXVtqXSArPSB0OwogICAgICAgIH0KICAgIH0KfQoKaW5saW5lIGludCBnZXQoaW50IHUsIGludCB2KSB7CiAgICBpbnQgYW5zID0gMDsKICAgIGZvcihpbnQgaSA9IGxvd2VyX2JvdW5kKHBvc1guYmVnaW4oKSwgcG9zWC5lbmQoKSwgdSkgLSBwb3NYLmJlZ2luKCk7IGk7IGkgLT0gaSAmLSBpKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IGxvd2VyX2JvdW5kKHBvc1tpXS5iZWdpbigpLCBwb3NbaV0uZW5kKCksIHYpIC0gcG9zW2ldLmJlZ2luKCk7IGogPiAwOyBqIC09IGogJi0gaikgewogICAgICAgICAgICBhbnMgKz0gYml0W2ldW2pdOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBhbnM7Cn0KaW50IGdldFJlY3QoaW50IGwsIGludCByLCBpbnQgdSwgaW50IHYpIHsKICAgIHJldHVybiBnZXQodSwgdikgLSBnZXQobCAtIDEsIHYpIC0gZ2V0KHUsIHIgLSAxKSArIGdldChsIC0gMSwgciAtIDEpOwp9Cgp1c2luZyBwaWkgPSBwYWlyPGludCwgaW50PjsKbWFwPHBpaSwgaW50PiB2YWw7CnNpZ25lZCBtYWluKCkgewogICAgY2luLnRpZShOVUxMKS0+c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGlmKGlmc3RyZWFtKCJRVUVSWS5pbnAiKSkgewogICAgICAgIGZyZW9wZW4oIlFVRVJZLmlucCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4oIlFVRVJZLm91dCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIGNpbiA+PiBuID4+IG0gPj4gazsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IGs7IGkrKykgewogICAgICAgIGNoYXIgYzsgY2luID4+IGM7CiAgICAgICAgaWYgKGMgPT0gJ1MnKSB7CiAgICAgICAgICAgIFFbaV0udHlwZSA9IDE7CiAgICAgICAgICAgIGNpbiA+PiBRW2ldLmwgPj4gUVtpXS5yID4+IFFbaV0udTsKICAgICAgICAgICAgZmFrZVVwWChRW2ldLmwpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgUVtpXS50eXBlID0gMjsKICAgICAgICAgICAgY2luID4+IFFbaV0ubCA+PiBRW2ldLnIgPj4gUVtpXS51ID4+IFFbaV0udjsKICAgICAgICAgICAgZmFrZUdldFJlY3RYKFFbaV0ubCwgUVtpXS51KTsKICAgICAgICB9CiAgICB9CiAgICBjb21wcmVzc1goKTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IGs7IGkrKykgewogICAgICAgIGlmIChRW2ldLnR5cGUgPT0gMSkgZmFrZVVwKFFbaV0ubCwgUVtpXS5yKTsKICAgICAgICBlbHNlIGZha2VHZXRSZWN0KFFbaV0ubCwgUVtpXS5yLCBRW2ldLnUsIFFbaV0udik7CiAgICB9CiAgICBjb21wcmVzcygpOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gazsgaSsrKSB7CiAgICAgICAgaWYgKFFbaV0udHlwZSA9PSAxKSB7CiAgICAgICAgICAgIGlmICh2YWwuY291bnQoe1FbaV0ubCwgUVtpXS5yfSkpIHsKICAgICAgICAgICAgICAgIFFbaV0udSAtPSB2YWxbe1FbaV0ubCwgUVtpXS5yfV07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdXBkYXRlKFFbaV0ubCwgUVtpXS5yLCBRW2ldLnUpOwogICAgICAgICAgICB2YWxbe1FbaV0ubCwgUVtpXS5yfV0gKz0gUVtpXS51OwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgY291dCA8PCBnZXRSZWN0KFFbaV0ubCwgUVtpXS5yLCBRW2ldLnUsIFFbaV0udikgPDwgIlxuIjsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQ==