import java.util.Scanner
import kotlin.math.*

fun main() {
	val scn = Scanner(System.`in`)
	val n = scn.nextInt()
	val abc =IntArray(3){scn.nextInt()}
	val q = Array(n){scn.next().toCharArray().map{it-'A'}}
	val arr = mutableListOf<Char>()
	repeat(n){
		val s = q[it]
		if (max(abc[s[0]],abc[s[1]])==0) {
			println("No")
			return
		}
		if (abc[s[0]]<abc[s[1]]){
			abc[s[0]]++
			abc[s[1]]--
			arr.add('A'+s[0])
		}else if (abc[s[0]]==1 && abc[s[1]]==1 && it<n-1 && s[0] in q[it+1]){
			abc[s[0]]++
			abc[s[1]]--
			arr.add('A'+s[0])
		}else {
			abc[s[0]]--
			abc[s[1]]++
			arr.add('A'+s[1])
		}
	}
	println("Yes")
	arr.forEach(::println)
}