def solve(t): # 時刻0にBが上向き,Aは空っぽの状態で,t秒後のAの容量 t %= 2 * K # 周期2K if t <= K: return t else: return 2 * K - t # アリのやつっぽい N, K, T = map(int, input().split()) A = list(input().split()) B = list(map(int, input().split())) BB = [[b, i] for i, b in enumerate(B)] BB.sort() C = [0] * N # 答え # 衝突を無視してT病後の位置を考える for n in range(N): if A[n] == "A": C[n] = solve(T - B[n]) else: C[n] = solve(T + B[n]) C.sort() ans = [0] * N for i in range(N): ans[BB[i][1]] = C[i] print(*ans)