#include <bits/stdc++.h>
using namespace std;
const int MAXN = 105;
int n, q, c, T[15][MAXN][MAXN];
int rectangulo(int z, int X1, int Y1, int X2, int Y2) {
  int ret = T[z][X2][Y2];
  if (Y1) ret -= T[z][X2][Y1 - 1];
  if (X1) ret -= T[z][X1 - 1][Y2];
  if (X1 && Y1) ret += T[z][X1 - 1][Y1 - 1];
  return ret;
}
int main() {
  scanf("%d %d %d", &n, &q, &c);
  for (int i = (0); i < (int)(n); i++) {
    int x, y, s;
    scanf("%d %d %d", &x, &y, &s);
    T[s][x][y]++;
  }
  for (int z = (0); z < (int)(15); z++) {
    for (int i = (0); i < (int)(MAXN); i++) {
      for (int j = (0); j < (int)(MAXN); j++) {
        if (i) T[z][i][j] += T[z][i - 1][j];
        if (j) T[z][i][j] += T[z][i][j - 1];
        if (i && j) T[z][i][j] -= T[z][i - 1][j - 1];
      }
    }
  }
  for (int Q = (0); Q < (int)(q); Q++) {
    int t, X1, X2, Y1, Y2, ans = 0;
    scanf("%d %d %d %d %d", &t, &X1, &Y1, &X2, &Y2);
    for (int z = (0); z < (int)(15); z++) {
      int algo = (z + t) % (c + 1);
      ans += rectangulo(z, X1, Y1, X2, Y2) * algo;
    }
    printf("%d\n", ans);
  }
  return 0;
}
