T = gets.to_i T.times do n, m = gets.split.map(&:to_i) a = gets.split.map(&:to_i).sort b = gets.split.map(&:to_i).sort if n == 0 puts 'Yes' b.each do |x| puts "Blue #{x}" end elsif m == 0 puts 'Yes' a.each do |x| puts "Red #{x}" end else a_cnt = a.tally b_cnt = b.tally c = a & b c_cnt = c.tally if c.empty? puts 'No' else puts 'Yes' t = 0 ans = [] c.each do |x| cnt = [a_cnt[x], b_cnt[x]].min cnt.times do if t.even? ans << "Red #{x}" ans << "Blue #{x}" else ans << "Blue #{x}" ans << "Red #{x}" end t += 1 end end if t.even? l1, l2 = ans.pop(2) b.each do |x| next if c_cnt[x] ans << "Blue #{x}" end ans << l1 ans << l2 a.each do |x| next if c_cnt[x] ans << "Red #{x}" end else b.each do |x| next if c_cnt[x] ans << "Blue #{x}" end a.each do |x| next if c_cnt[x] ans.unshift("Red #{x}") end end puts ans end end end