from bisect import bisect
def D(H, W, rs, cs, N, rc, Q, dl):
def search(a, x, rev=False):
idx = bisect(a, x)
return a[idx] - 1 if not rev else a[idx - 1] + 1
vertical = {}
horizontal = {}
for r, c in rc:
if c in vertical:
vertical[c].append(r)
else:
vertical[c] = [r]
if r in horizontal:
horizontal[r].append(c)
else:
horizontal[r] = [c]
vertical = {k: sorted([0] + v + [H + 1]) for k, v in vertical.items()}
horizontal = {k: sorted([0] + h + [W + 1]) for k, h in horizontal.items()}
rn, cn = rs, cs
for d, l in dl:
l = int(l)
if d == "L":
if rn not in horizontal:
c = 1
else:
c = search(horizontal[rn], cn, rev=True)
dist = abs(cn - c)
cn = c if dist <= l else cn - l
elif d == "R":
if rn not in horizontal:
c = W
else:
c = search(horizontal[rn], cn)
dist = abs(cn - c)
cn = c if dist <= l else cn + l
elif d == "U":
if cn not in vertical:
r = 1
else:
r = search(vertical[cn], rn, rev=True)
dist = abs(rn - r)
rn = r if dist <= l else rn - l
elif d == "D":
if cn not in vertical:
r = H
else:
r = search(vertical[cn], rn)
dist = abs(rn - r)
rn = r if dist <= l else rn + l
# print(rn, cn, file=out)
print(rn, cn)
H, W, rs, cs = map(int, input().split())
N = int(input())
rc = [list(map(int, input().split())) for _ in range(N)]
Q = int(input())
dl = [input().split() for _ in range(Q)]
D(H, W, rs, cs, N, rc, Q, dl)