#include <bits/stdc++.h>
using namespace std;
int N, M, K, Q;
vector<pair<long long, pair<int, int> > > garland[2020];
long long contrib[2020][2020];
int x1[2020], x2[2020], Y1[2020], y2[2020];
int swi[1000001];
bool off[2020];
int iter = 0, z = 0;
long long tree[4020][4020];
int readint() {
  char c;
  while ((c = getchar()) < '0')
    ;
  int res = c - '0';
  while ((c = getchar()) >= '0') {
    res = 10 * res + c - '0';
  }
  return res;
}
void printint(long long z) {
  if (z < 0) {
    putchar('-');
    z = -z;
  }
  if (z == 0) {
    putchar('0');
    return;
  }
  char arr[20];
  int ite = 0;
  while (z) {
    arr[ite] = (z % 10) + '0';
    z /= 10;
    ite++;
  }
  for (int i = ite - 1; i >= 0; i--) {
    putchar(arr[i]);
  }
}
void update(int x, int y, long long val) {
  x += N;
  y += M;
  int tempy;
  while (x <= 2 * N) {
    tempy = y;
    while (tempy <= 2 * M) {
      tree[x][tempy] += val;
      tempy += (tempy & -tempy);
    }
    x += (x & -x);
  }
}
long long rect(int x1, int Y1, int x2, int y2) {
  long long a, b, c, d;
  long long x, y;
  long long sum;
  x = x2;
  y = y2;
  sum = 0ll;
  x += N;
  y += M;
  while (x > 0) {
    int tempy = y;
    while (tempy > 0) {
      sum += tree[x][tempy];
      tempy -= tempy & -tempy;
    }
    x -= x & -x;
  }
  a = sum;
  x = x2;
  y = Y1 - 1;
  sum = 0ll;
  x += N;
  y += M;
  while (x > 0) {
    int tempy = y;
    while (tempy > 0) {
      sum += tree[x][tempy];
      tempy -= tempy & -tempy;
    }
    x -= x & -x;
  }
  b = sum;
  x = x1 - 1;
  y = y2;
  sum = 0ll;
  x += N;
  y += M;
  while (x > 0) {
    int tempy = y;
    while (tempy > 0) {
      sum += tree[x][tempy];
      tempy -= tempy & -tempy;
    }
    x -= x & -x;
  }
  c = sum;
  x = x1 - 1;
  y = Y1 - 1;
  sum = 0ll;
  x += N;
  y += M;
  while (x > 0) {
    int tempy = y;
    while (tempy > 0) {
      sum += tree[x][tempy];
      tempy -= tempy & -tempy;
    }
    x -= x & -x;
  }
  d = sum;
  return a - b - c + d;
}
int32_t main() {
  N = readint();
  M = readint();
  K = readint();
  for (int i = 0; i < K; i++) {
    int w;
    w = readint();
    for (int j = 0; j < w; j++) {
      int a, b, c;
      a = readint();
      b = readint();
      c = readint();
      a--;
      b--;
      garland[i].push_back(make_pair(c, make_pair(a, b)));
    }
  }
  Q = readint();
  for (int i = 0; i < Q; i++) {
    char c = 'Q';
    while (c != 'S' && c != 'A') {
      c = getchar();
    }
    if (c == 'S') {
      c = getchar();
      c = getchar();
      c = getchar();
      c = getchar();
      c = getchar();
      int x;
      x = readint();
      x--;
      swi[i] = x;
    } else {
      c = getchar();
      c = getchar();
      swi[i] = -1;
      x1[iter] = readint();
      Y1[iter] = readint();
      x2[iter] = readint();
      y2[iter] = readint();
      x1[iter]--;
      Y1[iter]--;
      x2[iter]--;
      y2[iter]--;
      iter++;
    }
  }
  for (int i = 0; i < K; i++) {
    for (int j = 0; j < garland[i].size(); j++) {
      update(garland[i][j].second.first, garland[i][j].second.second,
             garland[i][j].first);
    }
    for (int j = 0; j < iter; j++) {
      contrib[i][j] = rect(x1[j], Y1[j], x2[j], y2[j]);
    }
    for (int j = 0; j < garland[i].size(); j++) {
      update(garland[i][j].second.first, garland[i][j].second.second,
             -garland[i][j].first);
    }
  }
  for (int i = 0; i < Q; i++) {
    long long ans = 0;
    if (swi[i] != -1) {
      off[swi[i]] ^= 1;
      continue;
    }
    for (int j = 0; j < K; j++) {
      if (!off[j]) {
        ans += contrib[j][z];
      }
    }
    z++;
    printint(ans);
    putchar('\n');
  }
}
