#include <bits/stdc++.h>
using namespace std;
int neigh[4][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};
int dire[50][50];
int a[50][50][6];
int main() {
  char s[1000];
  int dire1;
  int i, j, n, b, q, x1, y1, x2, y2, x, y, k, l, b1, o;
  long long t;
  scanf("%d%d", &n, &b);
  for (i = 0; i <= b; i++)
    for (j = 0; j <= b; j++) dire[i][j] = -1;
  for (i = 0; i < n; i++) {
    scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
    if ((x1 == x2) && (y1 == y2)) continue;
    if (x1 == x2) {
      if (y1 < y2) {
        for (j = y1; j <= y2; j++) dire[x1][j] = 0;
      } else {
        for (j = y2; j <= y1; j++) dire[x1][j] = 2;
      }
    } else {
      if (x1 < x2) {
        for (j = x1; j <= x2; j++) dire[j][y1] = 1;
      } else {
        for (j = x2; j <= x1; j++) dire[j][y1] = 3;
      }
    }
  }
  scanf("%d", &q);
  for (i = 0; i < q; i++) {
    memset(a, -1, sizeof(a));
    scanf("%d%d%s%I64d", &x, &y, s, &t);
    switch (s[0]) {
      case 'U':
        dire1 = 0;
        break;
      case 'D':
        dire1 = 2;
        break;
      case 'R':
        dire1 = 1;
        break;
      case 'L':
        dire1 = 3;
        break;
    }
    for (j = 0; j < t; j++) {
      if (dire[x][y] != -1) dire1 = dire[x][y];
      if (a[x][y][dire1] != -1) {
        t = (t - a[x][y][dire1]) % (j - a[x][y][dire1]) + a[x][y][dire1];
        b1 = 0;
        for (k = 0; k <= b; k++) {
          for (l = 0; l <= b; l++) {
            for (o = 0; o < 4; o++)
              if (a[k][l][o] == t) {
                b1 = 1;
                break;
              }
            if (b1 == 1) break;
          }
          if (b1 == 1) break;
        }
        x = k;
        y = l;
        break;
      }
      a[x][y][dire1] = j;
      x1 = x;
      y1 = y;
      x += neigh[dire1][0];
      y += neigh[dire1][1];
      if ((x >= 0) && (x <= b) && (y >= 0) && (y <= b)) {
      } else {
        x = x1;
        y = y1;
      }
    }
    printf("%d %d\n", x, y);
  }
}
