#include <bits/stdc++.h>
using namespace std;

template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; }

using ll = long long;

const int dx[4] = {1, 0, -1, 0};
const int dy[4] = {0, 1, 0, -1};
const int INF = 1<<30;
const ll mod = 1000000007LL;

int main() {
    ll N,A,B,C;
    cin>>N>>A>>B>>C;
    bool can = true;
    vector<string> q(N);
    vector<char> ans(N);
    for(ll i = 0; i < N; i++) cin>>q[i];
    if(A==0&&B==0&&C==0) can = false;
    else{
        for(ll i = 0; i < N; i++){
            string S = q[i];
            if(S=="AB"){
                if(A==0&&B==0) can = false;
                else if(A==0) {
                    A++;
                    B--;
                    ans[i]='A';
                }
                else if(B==0){
                    A--;
                    B++;
                    ans[i]='B';
                }
                else if(A==1||B==1&&i!=N-1){
                    if(q[i+1]=="AC") {
                        A++;
                        B--;
                        ans[i]='A';
                    }
                    else if(q[i+1]=="BC"){
                        A--;
                        B++;
                        ans[i]='B';
                    }
                    else {
                        A++;
                        B--;
                        ans[i]='A';
                    }
                }
                else {
                    A++;
                    B--;
                    ans[i]='A';
                }
            }
            if(S=="AC"){
                if(A==0&&C==0) can = false;
                else if(A==0) {
                    A++;
                    C--;
                    ans[i]='A';
                }
                else if(C==0){
                    A--;
                    C++;
                    ans[i]='C';
                }
                else if(A==1||C==1&&i!=N-1){
                    if(q[i+1]=="AB") {
                        A++;
                        C--;
                        ans[i]='A';
                    }
                    else if(q[i+1]=="BC"){
                        A--;
                        C++;
                        ans[i]='C';
                    }
                    else {
                        A++;
                        C--;
                        ans[i]='A';
                    }
                }
                else {
                    A++;
                    C--;
                    ans[i]='A';
                }
            }
            if(S=="BC"){
                if(B==0&&C==0) can = false;
                else if(B==0) {
                    B++;
                    C--;
                    ans[i]='B';
                }
                else if(C==0){
                    B--;
                    C++;
                    ans[i]='C';
                }
                else if(B==1||C==1&&i!=N-1){
                    if(q[i+1]=="AB") {
                        B++;
                        C--;
                        ans[i]='B';
                    }
                    else if(q[i+1]=="AC"){
                        B--;
                        C++;
                        ans[i]='C';
                    }
                    else {
                        B++;
                        C--;
                        ans[i]='B';
                    }
                }
                else {
                    B++;
                    C--;
                    ans[i]='B';
                }
            }
        }
    }
    if(can){
        cout<<"Yes"<<endl;
        for(auto x:ans) cout<<x<<endl;
    }
    else cout<<"No"<<endl;
}

Measured memory_bytes: 6428