#include <bits/stdc++.h>
using namespace std;
#define int long long
#define override_rep(i, l, r, mes, ...) mes
#define rep1(i, n) for (int i = 0; i < n; i++)
#define rep2(i, l, r) for (int i = l; i < r; i++)
#define rep(...) override_rep(__VA_ARGS__, rep2, rep1)(__VA_ARGS__)
typedef pair<int,int> P;
template<typename T, typename U>
istream& operator>>(istream& in, pair<T, U>& p) {
    in >> p.first >> p.second;
    return in;
}
signed main(signed argc, char* argv[]) {
    cin.tie(nullptr);
    ios::sync_with_stdio(false);
    const int MOD = 1000000007;
	int n;
	cin>>n;
	int a,b,c;
	cin>>a>>b>>c;
	vector<char> vec(n);
	string be;
	cin>>be;
	rep(i,n-1){
		string s;
		cin>>s;
		if(be=="AC"){
            if(a<c){
                a++;
                c--;
                vec[i]='A';
            }
            else if(a>c){
                a--;
                c++;
                vec[i]='C';
            }
            else{
                if(a==0){
                    cout<<"No"<<endl;
                    return 0;
                }
                else{
                    if(s[0]=='A'){
                        a++;
                        c--;
                        vec[i]='A';
                    }
                    else{
                        a--;
                        c++;
                        vec[i]='C';
                    }
                }
            }
			
		}
		if(be=="BC"){
            if(c<b){
                c++;
                b--;
                vec[i]='C';
            }
            else if(c>b){
                c--;
                b++;
                vec[i]='B';
            }
            else{
                if(c==0){
                    cout<<"No"<<endl;
                    return 0;
                }
                else{
                    if(s[1]=='C'){
                        c++;
                        b--;
                        vec[i]='C';
                    }
                    else{
                        c--;
                        b++;
                        vec[i]='B';
                    }
                }
            }
		}
		if(be=="AB"){
			if(a<b){
				a++;
				b--;
				vec[i]='A';
			}
			else if(a>b){
				a--;
				b++;
				vec[i]='B';
			}
			else{
				if(a==0){
					cout<<"No"<<endl;
					return 0;
				}
				else{
					if(s[0]=='A'){
						a++;
						b--;
						vec[i]='A';
					}
					else{
                        a--;
                        b++;
                        vec[i]='B';
					}
				}
			}
		}
		be=s;
	}
	int i=n-1;
    if(be=="AC"){
        if(a<c){
            a++;
            c--;
            vec[i]='A';
        }
        else if(a>c){
            a--;
            c++;
            vec[i]='C';
        }
        else{
            if(a==0){
                cout<<"No"<<endl;
                return 0;
            }
            else{
                    a--;
                    c++;
                    vec[i]='C';

            }
        }

    }
    if(be=="BC"){
        if(c<b){
            c++;
            b--;
            vec[i]='C';
        }
        else if(c>b){
            c--;
            b++;
            vec[i]='B';
        }
        else{
            if(c==0){
                cout<<"No"<<endl;
                return 0;
            }
            else{
                    c--;
                    b++;
                    vec[i]='B';

            }
        }
    }
    if(be=="AB"){
        if(a<b){
            a++;
            b--;
            vec[i]='A';
        }
        else if(a>b){
            a--;
            b++;
            vec[i]='B';
        }
        else{
            if(a==0){
                cout<<"No"<<endl;
                return 0;
            }
            else{
                    a--;
                    b++;
                    vec[i]='B';
            }
        }
    }
	cout<<"Yes"<<endl;
	rep(j,n)cout<<vec[j]<<endl;
}


Measured memory_bytes: 3756