import sys import math import bisect import heapq from collections import deque, defaultdict #160427717982164055zq # ------------------------------------------------- def ST(): return input().rstrip() def IN(): return int(input()) def ML(typ=int): return [typ(x) for x in input().split()] def IM(): return ML() T = IN() for i in range(T): R = list(ST()) S = True if ST() == "Warong" else False K = IN() if S: for i in range(K): if R[i] == "?": R[i] = "A" C = R[K:].count("?") W = R[K:].count("W") for i in range(K, len(R)): if C == 1 and W == 0 and R[i] == "?": R[i] = "W" print("".join(R)) else: #条件1を満たす場合、Wを含んではいけない if "".join(R[:K]) == "A"*K: for i in range(K, len(R)): if R[i] == "?": R[i] = "A" # Wを含む場合、条件1を満たしてはいけない elif "W" in R and R[:K].count("?") == 1 and R[:K].count("W") == 0: ind = R[:K].index("?") R[ind] = "W" # どちらも満たさない場合はそもそも何も決定できない print("".join(R))