#include <bits/stdc++.h>
using namespace std;
vector<char> ans; 
void output(){
	cout << "Yes" << "\n"; 
	for(char c : ans) cout << c << "\n"; 
	return; 
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0); 
	int N; cin >> N; 
	long long A, B, C; cin >> A >> B >> C; 
	long long sum = A + B + C; 
	string S[100010] = {}; 
	for(int i = 0; i < N; i++) cin >> S[i]; 
 	if(sum == 1){
		for(int i = 0; i < N; i++){
			if(S[i] == "AB" && A > 0){
				A = 0; B = 1; ans.push_back('B');
			}else if(S[i] == "AB" && B > 0){
				A = 1; B = 0; ans.push_back('A');
			}else if(S[i] == "AC" && A > 0){
				A = 0; C = 1; ans.push_back('C');
			}else if(S[i] == "AC" && C > 0){
				A = 1; C = 0; ans.push_back('A');
			}else if(S[i] == "BC" && B > 0){
				B = 0; C = 1; ans.push_back('C');
			}else if(S[i] == "BC" && C > 0){
				B = 1; C = 0; ans.push_back('B');
			}else{
				cout << "No" << endl; return 0;
			}
		}
		output(); 
	}else if(sum >= 3){
		if(S[0] == "AB" && A == 0 && B == 0){
			cout << "No" << endl; return 0;
		}else if(S[0] == "AC" && A == 0 && C == 0){
			cout << "No" << endl; return 0;
		}else if(S[0] == "BC" && B == 0 && C == 0){
			cout << "No" << endl; return 0;
		}
		for(int i = 0; i < N; i++){	
			if(S[i] == "AB" && A >= B){
				A --; B ++; ans.push_back('B');
			}else if(S[i] == "AB" && B > A){
				A ++; B --; ans.push_back('A');
			}else if(S[i] == "AC" && A >= C){
				A --; C ++; ans.push_back('C');
			}else if(S[i] == "AC" && C > A){
				A ++; C --; ans.push_back('A');
			}else if(S[i] == "BC" && B >= C){
				B --; C ++; ans.push_back('C');
			}else if(S[i] == "BC" && C > B){
				B ++; C --; ans.push_back('B');
			}
		}
		output(); 
	}else if(sum == 2){
		if(S[0] == "AB" && A == 0 && B == 0){
			cout << "No" << endl; return 0;
		}else if(S[0] == "AC" && A == 0 && C == 0){
			cout << "No" << endl; return 0;
		}else if(S[0] == "BC" && B == 0 && C == 0){
			cout << "No" << endl; return 0;
		}
		for(int i = 0; i < N; i++){
			if(S[i] == "AB" && A > B){
				A --; B ++; ans.push_back('B');
			}else if(S[i] == "AB" && B > A){
				A ++; B --; ans.push_back('A');
			}else if(S[i] == "AC" && A > C){
				A --; C ++; ans.push_back('C');
			}else if(S[i] == "AC" && C > A){
				A ++; C --; ans.push_back('A');
			}else if(S[i] == "BC" && B > C){
				B --; C ++; ans.push_back('C');
			}else if(S[i] == "BC" && C > B){
				B ++; C --; ans.push_back('B');
			}else if(S[i] == "AB" && A == B){
				if(i == N - 1){
					A++; B--; ans.push_back('A'); 
				}else if(S[i+1] == "AB"){
					A++; B--; ans.push_back('A'); 
				}else if(S[i+1] == "AC"){
					A++; B--; ans.push_back('A'); 
				}else if(S[i+1] == "BC"){
					A--; B++; ans.push_back('B'); 
				}
			}else if(S[i] == "AC" && A == C){
				if(i == N - 1){
					A++; C--; ans.push_back('A'); 
				}else if(S[i+1] == "AB"){
					A++; C--; ans.push_back('A'); 
				}else if(S[i+1] == "AC"){
					A++; C--; ans.push_back('A'); 
				}else if(S[i+1] == "BC"){
					A--; C++; ans.push_back('C'); 
				}
			}else if(S[i] == "BC" && B == C){
				if(i == N - 1){
					B++; C--; ans.push_back('B'); 
				}else if(S[i+1] == "AB"){
					B++; C--; ans.push_back('B'); 
				}else if(S[i+1] == "AC"){
					B--; C++; ans.push_back('C'); 
				}else if(S[i+1] == "BC"){
					B--; C++; ans.push_back('C'); 
				}
			}
		}
		output(); 
	}else if(sum == 0){
		cout << "No" << endl; return 0; 
	}
}

Measured memory_bytes: 6932