#include <bits/stdc++.h>
using namespace std;
class BIT2d {
 public:
  vector<vector<long long int> > ft;
  int n, m;
  BIT2d(int a, int b) {
    n = a;
    m = b;
    ft.assign(n + 1, vector<long long int>(m + 1, 0));
  }
  long long int rsq(int a, int b1) {
    if (a < 1 || b1 < 1) return 0;
    long long int sum = 0, b = b1;
    for (; a; a -= (a & (-a)))
      for (b = b1; b; b -= (b & (-b))) sum += ft[a][b];
    return sum;
  }
  void update(int x, int y, long long int val) {
    int y1;
    while (x <= n) {
      y1 = y;
      while (y1 <= m) {
        ft[x][y1] += val;
        y1 += (y1 & (-y1));
      }
      x += (x & (-x));
    }
  }
  long long int rsq(int L, int R, int L2, int R2) {
    if (L2 == 1 && R2 == 1) return rsq(L2, R2);
    return rsq(L2, R2) - rsq(L2, R - 1) - rsq(L - 1, R2) + rsq(L - 1, R - 1);
  }
};
struct Ask {
  int x1, y1, x2, y2;
  vector<long long int> val;
  Ask(int a, int b, int c, int d) {
    x1 = a;
    y1 = b;
    x2 = c;
    y2 = d;
  }
};
int A[2001][2001];
vector<vector<pair<int, int> > > E;
vector<Ask> Query;
int main() {
  vector<int> Q;
  int n, m, k;
  scanf("%d %d %d", &n, &m, &k);
  E.assign(k + 1, vector<pair<int, int> >());
  int s, a, b, c;
  for (int i = 0; i < k; i++) {
    scanf("%d", &s);
    for (int j = 0; j < s; j++) {
      scanf("%d %d %d", &a, &b, &c);
      E[i].push_back(make_pair(a, b));
      A[a][b] = c;
    }
  }
  int q;
  scanf("%d", &q);
  char str[10];
  for (int i = 0; i < q; i++) {
    scanf("%s", str);
    if (str[0] == 'S') {
      scanf("%d", &a);
      a--;
      Q.push_back(a);
    } else {
      scanf("%d %d %d %d", &s, &a, &b, &c);
      Query.push_back(Ask(s, a, b, c));
      Q.push_back(-1);
    }
  }
  BIT2d B(n, m);
  n = Query.size();
  long long int ans[n + 1];
  for (int i = 0; i < k; i++) {
    int z = E[i].size();
    for (int j = 0; j < z; j++)
      B.update(E[i][j].first, E[i][j].second, A[E[i][j].first][E[i][j].second]);
    for (int j = 0; j < n; j++) {
      long long int val =
          B.rsq(Query[j].x1, Query[j].y1, Query[j].x2, Query[j].y2);
      long long int temp = val;
      if (i) val -= ans[j];
      ans[j] = temp;
      Query[j].val.push_back(val);
    }
  }
  int flag[k + 1];
  memset(flag, 0, sizeof(flag));
  for (int i = 0, j = 0; i < q; i++) {
    if (Q[i] == -1) {
      for (int p = 0; p < k; p++)
        if (flag[p]) ans[j] -= Query[j].val[p];
      j++;
    } else
      flag[Q[i]] ^= 1;
  }
  for (int i = 0; i < n; i++) printf("%I64d\n", ans[i]);
  return 0;
}
