#include <bits/stdc++.h>
#define all(X) (X).begin(),(X).end()
#define rall(X) (X).rbegin(),(X).rend()
#define pub push_back
#define puf push_front
#define pob pop_back
#define pof pop_front
#define ff first
#define ss second
#define P 1000000007
#define in(x, a, b) (a <= x && x < b)

using namespace std;
using ll = long long;
typedef pair<int, int> ii;
typedef vector<ii> vii; 
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<vii> vvii;
const ll inf = 1000000001, INF = (ll)1e18 + 1;

void solve() {
	int n, a, b, c;
	cin >> n >> a >> b >> c;
	
	vector<string> s(n);
	for(int i = 0; i < n; i++) cin >> s[i];
		
	if((a + b + c) == 2) {
		int ok = 1;
		if(s[0] == "AB" && a == 0 && b == 0) ok = 0;
		if(s[0] == "BC" && c == 0 && b == 0) ok = 0;
		if(s[0] == "AC" && a == 0 && c == 0) ok = 0;
		string ans;
		for(int i = 0; i < n && ok; i++) {
        if(s[i] == "AB"){
				if(a == 0) {
					a++;
					b--;
					ans.pub('A');
					continue;
				}
				
				if(b == 0) {
					b++;
					a--;
					ans.pub('B');
					continue;
				}
                if(i < n - 1){
                    if(s[i + 1] == "AB"){
                        ans.push_back('B');
                        a--, b++;
                    }else if(s[i + 1] == "BC"){
                        ans.push_back('B');
                        a--, b++;
                    }else{
                        ans.push_back('A');
                        b--, a++;
                    }
                }else{
                    ans.push_back('A');
                }
            
        }else if(s[i] == "BC"){
            				if(b == 0) {
					b++;
					c--;
					ans.pub('B');
					continue;
				}
				
				if(c == 0) {
					c++;
					b--;
					ans.pub('C');
					continue;
				}
                if(i < n - 1){
                    if(s[i + 1] == "AB"){
                        ans.push_back('B');
                        c--, b++;
                    }else if(s[i + 1] == "BC"){
                        ans.push_back('B');
                        c--, b++;
                    }else{
                        ans.push_back('C');
                        b--, c++;
                    }
                }else{
                    ans.push_back('B');
                }
            
        }else{
            				if(a == 0) {
					a++;
					c--;
					ans.pub('A');
					continue;
				}
				
				if(c == 0) {
					c++;
					a--;
					ans.pub('C');
					continue;
				}
                if(i < n - 1){
                    if(s[i + 1] == "AB"){
                        ans.push_back('A');
                        c--, a++;
                    }else if(s[i + 1] == "BC"){
                        ans.push_back('C');
                        a--, c++;
                    }else{
                        ans.push_back('C');
                        a--, c++;
                    }
                }else{
                    ans.push_back('C');
                }
            
        }
    }
    
    cout << (ok ? "Yes" : "No") << endl;
		for(int i = 0; i < n && ok; i++) {
			cout << ans[i] << endl;
		}
    
//		int ok = 1;
//		if(s[0] == "AB" && a == 0 && b == 0) ok = 0;
//		if(s[0] == "BC" && c == 0 && b == 0) ok = 0;
//		if(s[0] == "AC" && a == 0 && c == 0) ok = 0;
//		
//		for(int i = 0; i < n && ok; i++) {
//			if(s[i] == "AB") {
//				if(a == 0) {
//					a++;
//					b--;
//					ans[i] = "A";
//					continue;
//				}
//				
//				if(b == 0) {
//					b++;
//					a--;
//					ans[i] = "B";
//					continue;
//				}
//				
//				if(a == b && b == 1) {
//					if(i == n - 1 || s[i + 1] == s[i]) {
//						ans[i] = "A";
//						a++;
//						b--;
//					} else if(s[i + 1] == "BC") {
//						b++;
//						a--;
//						ans[i] = "B";
//					} else {
//						a++;
//						c--;
//						ans[i] = "A";
//					}
//					
//					continue;
//				}
//				
//				if(a > b) {
//					a--;
//					b++;
//					ans[i] = "B";
//				} else {	
//					a++;
//					b--;
//					ans[i] = "A";
//				}
//			} else if(s[i] == "BC") {
//				if(b == 0) {
//					b++;
//					c--;
//					ans[i] = "B";
//					continue;
//				}
//				
//				if(c == 0) {
//					c++;
//					b--;
//					ans[i] = "C";
//					continue;
//				}
//				
//				if(c == b && b == 1) {
//					if(i == n - 1 || s[i + 1] == s[i]) {
//						ans[i] = "B";
//						b++;
//						c--;
//					} else if(s[i + 1] == "AB") {
//						b++;
//						c--;
//						ans[i] = "B";
//					} else {
//						c++;
//						b--;
//						ans[i] = "C";
//					}
//					
//					continue;
//				}
//				
//				if(b > c) {
//					b--;
//					c++;
//					ans[i] = "C";
//				} else {
//					b++;
//					c--;
//					ans[i] = "B";
//				}
//			} else {
//				if(a == 0) {
//					a++;
//					c--;
//					ans[i] = "A";
//					continue;
//				}
//				
//				if(c == 0) {
//					c++;
//					a--;
//					ans[i] = "C";
//					continue;
//				}
//				
//				if(c == a && a == 1) {
//					if(i == n - 1 || s[i + 1] == s[i]) {
//						ans[i] = "A";
//						a++;
//						c--;
//					} else if(s[i + 1] == "AB") {
//						a++;
//						c--;
//						ans[i] = "A";
//					} else {
//						c++;
//						a--;
//						ans[i] = "C";
//					}
//					
//					continue;
//				}
//				
//				if(a > c) {
//					a--;
//					c++;
//					ans[i] = "C";
//				} else {
//					a++;
//					c--;
//					ans[i] = "A";
//				}
//			}
//		}
//		
//		cout << (ok ? "Yes" : "No") << endl;
//		for(int i = 0; i < n && ok; i++) {
//			cout << ans[i] << endl;
//		}
	} else {
		vector<string> ans(n);
		int ok = 1;
		for(int i = 0; i < n && ok; i++) {
			if(s[i] == "AB") {
				if(a == b && b == 0) ok = 0;
				if(a > b) {
					a--;
					b++;
					ans[i] = "B";
				} else {
					a++;
					b--;
					ans[i] = "A";
				}
			} else if(s[i] == "BC") {
				if(b == c && c == 0) ok = 0;
				if(b > c) {
					b--;
					c++;
					ans[i] = "C";
				} else {
					b++;
					c--;
					ans[i] = "B";
				}
			} else {
				if(a == c && c == 0) ok = 0;
				if(a > c) {
					a--;
					c++;
					ans[i] = "C";
				} else {
					a++;
					c--;
					ans[i] = "A";
				}
			}
		}
		
		cout << (ok ? "Yes" : "No") << endl;
		for(int i = 0; i < n && ok; i++) {
			cout << ans[i] << endl;
		}
	}
}

int main() {
	ios_base::sync_with_stdio(false);
	solve();
    return 0;
}



Measured memory_bytes: 9524