from collections import defaultdict for _ in range(int(input())): n, m = map(int, input().split()) A = list(map(int, input().split())) B = list(map(int, input().split())) A.sort() B.sort() AD = defaultdict(int) for i in range(n): AD[A[i]] = i BD = defaultdict(int) for i in range(m): BD[B[i]] = i secter_set = set(A) & set(B) if n == 0: print("Yes") for i in range(m): print(f"Blue {B[i]}") continue if m == 0: print("Yes") for i in range(n): print(f"Red {A[i]}") continue if len(secter_set) == 0: print("No") continue print("Yes") i, j = 0, 0 red = True ANS = [] while len(secter_set) > 1: if red: a = A[i] ANS.append(f"Red {a}") i += 1 if a in secter_set: secter_set.remove(a) l = BD[a] ANS.append(f"Blue {a}") for k in range(j, l): ANS.append(f"Blue {B[k]}") j = l + 1 red = False else: b = B[j] ANS.append(f"Blue {b}") j += 1 if b in secter_set: secter_set.remove(b) l = AD[b] ANS.append(f"Red {b}") for k in range(i, l): ANS.append(f"Red {A[k]}") i = l + 1 red = True if red: for k in range(i, n): if A[k] in secter_set: f = A[k] continue ANS.append(f"Red {A[k]}") ANS.append(f"Red {f}") ANS.append(f"Blue {f}") for k in range(j, m): if B[k] == f: continue ANS.append(f"Blue {B[k]}") else: for k in range(j, m): if B[k] in secter_set: f = B[k] continue ANS.append(f"Blue {B[k]}") ANS.append(f"Blue {f}") ANS.append(f"Red {f}") for k in range(i, n): if A[k] == f: continue ANS.append(f"Red {A[k]}") print(*ANS, sep='\n')