#include //#include //using namespace atcoder; using namespace std; const int INF = 1e9; using ll = long long; using inv = vector; using stv = vector; using pint = pair; #define FOR(i,l,r) for(int i=(l); i<(r); i++) #define rep(i,r) for(int i=0; i<(r); i++) #define repl(i,r) for(long long i=0; i<(r); i++) #define FORl(i,l,r) for(long long i=(l); i<(r); i++) #define INFL ((1LL<<62)-(1LL<<31)) #define pb(x) push_back(x) #define CIN(x) cin >> x int main(){ int T; cin >> T; rep(q,T){ int N,M; cin >> N >> M; set A,B; rep(i,N){ ll c; cin >> c; A.insert(c); } rep(i,M){ ll c; cin >> c; B.insert(c); } if(!N || !M){ if(!N){ cout << "Yes" << endl; for(auto b: B){ cout << "Blue " << b << endl; } continue; }else{ cout << "Yes" << endl; for(auto a: A){ cout << "Red " << a << endl; } continue; } } set S; // 共通のやつ for(auto C:A){ if(B.find(C) != B.end()){ S.insert(C); B.erase(C); A.erase(C); } } if(S.empty() && !A.empty() && !B.empty()){ cout << "No" << endl; continue; } cout << "Yes" << endl; bool nowA = true; if(A.empty()){ nowA = false; } if(B.empty()){ nowA = true; } if(!nowA){ for(auto b:B){ cout << "Blue " << b << endl; } for(auto s:S){ cout << (nowA ? "Red ":"Blue ") << s << endl; cout << (!nowA ? "Red ":"Blue ") << s << endl; nowA = !nowA; } continue; } else if(B.empty()){ for(auto a:A){ cout << "Red " << a << endl; } for(auto s:S){ cout << (nowA ? "Red ":"Blue ") << s << endl; cout << (!nowA ? "Red ":"Blue ") << s << endl; nowA = !nowA; } continue; }else{ bool first = true; for(auto a:A){ cout << "Red " << a << endl; } for(auto s:S){ cout << (nowA ? "Red ":"Blue ") << s << endl; cout << (!nowA ? "Red ":"Blue ") << s << endl; if(first){ for(auto b: B){ cout << "Blue " << b << endl; } } nowA = !nowA; first = false; } } } return 0; }