#include<bits/stdc++.h>
using namespace std;
using ll=long long;
constexpr ll mod=1000000007;
const string T[3]={"AB","BC","AC"};


int N,A,B,C,X[100000];
string S;
bool DP[100001][6];

int main(){
	cin>>N>>A>>B>>C;
	for(int i=0;i<N;i++){
		cin>>S;
		for(int j=0;;j++){
			if(T[j]==S){
				X[i]=j;
				break;
			}
		}
	}
	if(A+B+C==2){
		for(int i=0;i<6;i++)DP[N][i]=true;
		for(int i=N-1;i>=0;i--){
			if(X[i]==0){
				DP[i][0]|=DP[i+1][3]|DP[i+1][4];
				DP[i][1]|=DP[i+1][2];
				DP[i][2]|=DP[i+1][1];
				DP[i][3]|=DP[i+1][0];
				DP[i][4]|=DP[i+1][0];
			}
			else if(X[i]==1){
				DP[i][0]|=DP[i+1][2];
				DP[i][1]|=DP[i+1][4]|DP[i+1][5];
				DP[i][2]|=DP[i+1][0];
				DP[i][4]|=DP[i+1][1];
				DP[i][5]|=DP[i+1][1];
			}
			else if(X[i]==2){
				DP[i][0]|=DP[i+1][1];
				DP[i][1]|=DP[i+1][0];
				DP[i][2]|=DP[i+1][3]|DP[i+1][5];
				DP[i][3]|=DP[i+1][2];
				DP[i][5]|=DP[i+1][2];
			}
		}
		int p;
		if(A==1&&B==1){
			p=0;
		}
		else if(B==1&&C==1){
			p=1;
		}
		else if(C==1&&A==1){
			p=2;
		}
		else if(A==2){
			p=3;
		}
		else if(B==2){
			p=4;
		}
		else if(C==2){
			p=5;
		}
		if(DP[0][p]){
			puts("Yes");
		}
		else{
			puts("No");
			return 0;
		}
		for(int i=0;i<N;i++){
			if(X[i]==0){
				if(p==0){
					if(DP[i+1][3]){
						p=3;
						puts("A");
					}
					else{
						p=4;
						puts("B");
					}
				}
				else if(p==1){
					p=2;
					puts("A");
				}
				else if(p==2){
					p=1;
					puts("B");
				}
				else if(p==3){
					p=0;
					puts("B");
				}
				else if(p==4){
					p=0;
					puts("A");
				}
			}
			else if(X[i]==1){
				if(p==0){
					p=2;
					puts("C");
				}
				else if(p==1){
					if(DP[i+1][4]){
						p=4;
						puts("B");
					}
					else{
						p=5;
						puts("C");
					}
				}
				else if(p==2){
					p=0;
					puts("B");
				}
				else if(p==4){
					p=1;
					puts("C");
				}
				else if(p==5){
					p=1;
					puts("B");
				}
			}
			else if(X[i]==2){
				if(p==0){
					p=1;
					puts("C");
				}
				else if(p==1){
					p=0;
					puts("A");
				}
				else if(p==2){
					if(DP[i+1][3]){
						p=3;
						puts("A");
					}
					else{
						p=5;
						puts("C");
					}
				}
				else if(p==3){
					p=2;
					puts("C");
				}
				else if(p==5){
					p=2;
					puts("A");
				}
			}
		}
	}
	else{
		int a,b,c;
		a=A;
		b=B;
		c=C;
		for(int i=0;i<N;i++){
			if(X[i]==0){
				if(a==0&&b==0){
					puts("No");
					return 0;
				}
				if(a>b){
					a--;
					b++;
				}
				else{
					a++;
					b--;
				}
			}
			else if(X[i]==1){
				if(b==0&&c==0){
					puts("No");
					return 0;
				}
				if(b>c){
					b--;
					c++;
				}
				else{
					b++;
					c--;
				}					
			}
			else if(X[i]==2){
				if(c==0&&a==0){
					puts("No");
					return 0;
				}
				if(c>a){
					c--;
					a++;
				}
				else{
					c++;
					a--;
				}
			}
		}
		puts("Yes");
		a=A;
		b=B;
		c=C;
		for(int i=0;i<N;i++){
			if(X[i]==0){
				if(a>b){
					puts("B");
					a--;
					b++;
				}
				else{
					puts("A");
					a++;
					b--;
				}
			}
			else if(X[i]==1){
				if(b>c){
					puts("C");
					b--;
					c++;
				}
				else{
					puts("B");
					b++;
					c--;
				}					
			}
			else if(X[i]==2){
				if(c>a){
					puts("A");
					c--;
					a++;
				}
				else{
					puts("C");
					c++;
					a--;
				}
			}
		}
	}
}


Measured memory_bytes: 4532