# import pypyjit;pypyjit.set_param("max_unroll_recursion=-1") # from bisect import * # from collections import * # from heapq import * # from itertools import * # from math import * # from datetime import * # from decimal import* # from string import ascii_lowercase,ascii_uppercase # import numpy as np import sys import os # sys.setrecursionlimit(10**6) INF = 10**18 MOD = 998244353 # MOD = 10**9 + 7 File = open("input.txt", "r") if os.path.exists("input.txt") else sys.stdin def input(): return File.readline()[:-1] # /////////////////////////////////////////////////////////////////////////// T = int(input()) def f(l, s): res = 0 flag = [0] * (len(l)) for i in range(len(l)): if l[i] in s: flag[i] = 1 res += 1 return flag, res for _ in range(T): N, M = map(int, input().split()) A = list(map(int, input().split())) As = set(A) B = list(map(int, input().split())) Bs = set(B) if len(A) == 0 or len(B) == 0: print("Yes") print(*["Red " + str(i) for i in A], sep="\n") if len(A) else print( *["Blue " + str(i) for i in B], sep="\n" ) continue flagA, cnt1 = f(A, Bs) flagB, cnt2 = f(B, As) if cnt1 == 0 or cnt2 == 0: print("No") continue print("Yes") for i in range(N): if not flagA[i]: print("Red", A[i]) parity = 1 flag = 0 for i in range(N): if flagA[i]: if parity: print("Red", A[i]) print("Blue", A[i]) else: print("Blue", A[i]) print("Red", A[i]) parity ^= 1 if flag == 0: for j in range(M): if not flagB[j]: print("Blue", B[j]) flag = 1