#include <bits/stdc++.h>
using namespace std;
template <class A, class B>
inline bool mina(A &x, const B &y) {
  return (y < x) ? (x = y, 1) : 0;
}
template <class A, class B>
inline bool maxa(A &x, const B &y) {
  return (x < y) ? (x = y, 1) : 0;
}
int R, C, K;
vector<pair<int, int> > G[(2004)];
vector<int> Q[(2004)];
int M;
int S[(2004)];
int A[(2004)][(2004)];
long long sol[(2004)];
long long B[(2004)][(2004)];
void bit_add(int r, int c, int v) {
  for (int i = r; i <= R; i += i & -i)
    for (int j = c; j <= C; j += j & -j) B[i][j] += v;
}
long long bit_read(int r, int c) {
  long long sum = 0;
  for (int i = r; i > 0; i -= i & -i)
    for (int j = c; j > 0; j -= j & -j) sum += B[i][j];
  return sum;
}
inline long long calc(int r1, int c1, int r2, int c2) {
  long long sum = 0;
  sum += bit_read(r2, c2);
  sum += bit_read(r1, c1);
  sum -= bit_read(r2, c1);
  sum -= bit_read(r1, c2);
  return sum;
}
char T[(100000000)];
int isp[256];
int p;
int res;
char c;
void skipSpace() {
  while (T[p] && isp[int(T[p])]) ++p;
}
void skipWord() {
  skipSpace();
  while (T[p] && !isp[int(T[p])]) ++p;
}
int readInt() {
  skipSpace();
  res = 0;
  while (T[p] && !isp[int(T[p])]) res = res * 10 + T[p++] - '0';
  return res;
}
int readChar() {
  skipSpace();
  return T[p++];
}
int main() {
  {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
  };
  isp[' '] = isp['\n'] = 1;
  fread(T, 1, (100000000), stdin);
  R = readInt();
  C = readInt();
  K = readInt();
  for (int _b = (K), i = (0); i < _b; ++i) {
    int n = readInt();
    G[i].reserve(n);
    for (int _n = (n); _n--;) {
      int r = readInt();
      int c = readInt();
      int v = readInt();
      G[i].push_back(pair<int, int>(r * (2004) + c, v));
    }
  }
  for (int _b = (K), i = (0); i < _b; ++i) S[i] = 1;
  int QQ = readInt();
  for (int _n = (QQ); _n--;) {
    char c = readChar();
    skipWord();
    if (c == 'S') {
      int a = readInt();
      --a;
      S[a] ^= 1;
    } else {
      int r1 = readInt();
      int c1 = readInt();
      int r2 = readInt();
      int c2 = readInt();
      Q[M] = {r1, c1, r2, c2};
      for (int _b = (K), i = (0); i < _b; ++i) A[M][i] = S[i];
      ++M;
    }
  }
  for (int _b = (K), i = (0); i < _b; ++i) {
    for (pair<int, int> p : G[i]) {
      int r, c, v;
      r = p.first / (2004);
      c = p.first % (2004);
      v = p.second;
      bit_add(r, c, v);
    }
    for (int _b = (M), j = (0); j < _b; ++j)
      if (A[j][i]) sol[j] += calc(Q[j][0] - 1, Q[j][1] - 1, Q[j][2], Q[j][3]);
    for (pair<int, int> p : G[i]) {
      int r, c, v;
      r = p.first / (2004);
      c = p.first % (2004);
      v = p.second;
      bit_add(r, c, -v);
    }
  }
  for (int _b = (M), i = (0); i < _b; ++i) cout << sol[i] << '\n';
  return 0;
}
