








import sys
import heapq
input = sys.stdin.readline
dx = (-1, 0, 1, 0)
dy = (0, 1, 0, -1)
def move_rudol():
dist = []
for sn in santa.keys():
sr, sc, score, state = santa[sn]
if state != 3:
heapq.heappush(dist, (abs(rudol[0]-sr)**2 + abs(rudol[1]-sc)**2, -sr, -sc, sn))
tmp = heapq.heappop(dist); target = tmp[3]
x = (santa[target][0] - rudol[0])
if x != 0: x //= abs(santa[target][0] - rudol[0])
y = (santa[target][1] - rudol[1])
if y != 0: y //= abs(santa[target][1] - rudol[1])
board[rudol[0]][rudol[1]] = 0
rudol[0] += x; rudol[1] += y
if board[rudol[0]][rudol[1]] != 0:
crash_rudol(rudol[0], rudol[1], board[rudol[0]][rudol[1]], x, y)
board[rudol[0]][rudol[1]] = -1
def crash_rudol(ar, ac, p, x, y):
santa[p][2] += C
santa[p][3] = 2
nr = ar + C*x; nc = ac + C*y
if 0<=nr<N and 0<=nc<N:
if board[nr][nc] != 0:
interaction(board[nr][nc], nr, nc, x, y)
board[nr][nc] = p
santa[p][0] = nr; santa[p][1] = nc
else:
board[nr][nc] = p
santa[p][0] = nr; santa[p][1] = nc
else:
santa[p][3] = 3
def interaction(p, r, c, x, y):
nr = r + x; nc = c + y
if 0<=nr<N and 0<=nc<N:
if board[nr][nc] != 0:
interaction(board[nr][nc], nr, nc, x, y)
board[nr][nc] = p
santa[p][0] = nr; santa[p][1] = nc
else:
board[nr][nc] = p
santa[p][0] = nr; santa[p][1] = nc
else:
santa[p][3] = 3
def move_santa():
for p in range(1, P+1):
if santa[p][3] == 0:
sr, sc, score, state = santa[p]
dist = []
for i in range(4):
nsr = sr + dx[i]; nsc = sc + dy[i]
if 0<=nsr<N and 0<=nsc<N:
if board[nsr][nsc] == 0 or board[nsr][nsc] == -1:
cur_di = abs(rudol[0]-sr)**2 + abs(rudol[1]-sc)**2
new_di = abs(rudol[0]-nsr)**2 + abs(rudol[1]-nsc)**2
if cur_di > new_di: heapq.heappush(dist, (new_di, i))
if dist:
tmp = heapq.heappop(dist); i = tmp[1]
nsr = sr + dx[i]; nsc = sc + dy[i]
board[sr][sc] = 0
if board[nsr][nsc] == -1:
crash_santa(nsr, nsc, p, (i+2)%4)
else:
board[nsr][nsc] = p
santa[p][0] = nsr; santa[p][1] = nsc
def crash_santa(ar, ac, p, i):
santa[p][2] += D
santa[p][3] = 2
nr = ar + D*dx[i]; nc = ac + D*dy[i]
if 0<=nr<N and 0<=nc<N:
if board[nr][nc] != 0:
interaction(board[nr][nc], nr, nc, dx[i], dy[i])
board[nr][nc] = p
santa[p][0] = nr; santa[p][1] = nc
else:
board[nr][nc] = p
santa[p][0] = nr; santa[p][1] = nc
else:
santa[p][3] = 3
N, M, P, C, D = map(int, input().split())
board = [[0]*N for n in range(N)]
rudol = list(map(int, input().split())); rudol[0]-=1; rudol[1]-=1; board[rudol[0]][rudol[1]] = -1
santa = dict()
for p in range(P):
sn, sr, sc = map(int, input().split()); sr-=1; sc-=1
santa[sn] = [sr, sc, 0, 0]
board[sr][sc] = sn
for m in range(M):
move_rudol()
move_santa()
for key in santa.keys():
if santa[key][3] == 1 or santa[key][3] == 2: santa[key][3] -= 1
cnt = 0
for key in santa.keys():
if santa[key][3] == 3: cnt += 1
if cnt == P: break
for key in santa.keys():
if santa[key][3] != 3: santa[key][2] += 1
answer = []
for p in range(1, P+1):
answer.append(santa[p][2])
print(" ".join(map(str, answer)))