#include <bits/stdc++.h>
#define rep(i,n) for (ll i = 0; i < (n); ++i)
using namespace std;
typedef long long ll;
typedef pair<ll,ll> P;
typedef vector<vector<ll> > Graph;
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; }
const ll INF = 1e18;

ll n,a,b,c;
vector<string>s;
string ans;
bool cn;

bool f(string st){
    if(st=="AB"){
        if(a==0&&b==0){
            return false;
        }
        else{
            if(a==0){
                a++;b--;
                ans+="A";
            }
            else{
                a--;b++;
                ans+="B";
            }
        }
    }
    if(st=="AC"){
        if(a==0&&c==0){
            return false;
        }
        else{
            if(a==0){
                a++;c--;
                ans+="A";
            }
            else{
                a--;c++;
                ans+="C";
            }
        }
    }
    if(st=="BC"){
        if(b==0&&c==0){
            return false;
        }
        else{
            if(b==0){
                b++;c--;
                ans+="B";
            }
            else{
                b--;c++;
                ans+="C";
            }
        }
    }
    return true;
}

bool g(int j){
    if(s[j]=="AB"){
        if(a==0&&b==0){
            return false;
        }
        else if(a==0){
            a++;b--;
            ans+='A';
        }
        else if(b==0){
            a--;b++;
            ans+='B';
        }
        else if(a==b){
            string nx = s[j+1];
            if(nx=="AB"){
                a--;b++;
                ans+='B';
            }
            else{
                if(nx=="BC"){
                    a--;b++;
                    ans+="B";
                }
                if(nx=="AC"){
                    a++;b--;
                    ans+="A";
                }
            }
        }
        else{
            if(a<b){
                a++;b--;
                ans+='A';
            }
            else{
                a--;b++;
                ans+='B';
            }
        }

    }
    if(s[j]=="AC"){
        if(a==0&&c==0){
            return false;
        }
        else if(a==0){
            a++;c--;
            ans+='A';
        }
        else if(c==0){
            a--;c++;
            ans+='C';
        }
        else if(a==c){
            string nx = s[j+1];
            if(nx=="AC"){
                a++;c--;
                ans+='A';

            }
            else{
                if(nx=="BC"){
                    a--;c++;
                    ans+="C";
                }
                if(nx=="AB"){
                    a++;c--;
                    ans+="A";
                }
            }
        }
        else{
            if(a<c){
                a++;c--;
                ans+='A';
            }
            else{
                a--;c++;
                ans+='C';
            }
        }
    }
    if(s[j]=="BC"){
        if(c==0&&b==0){
            return false;
        }
        else if(c==0){
            c++;b--;
            ans+='C';
        }
        else if(b==0){
            c--;b++;
            ans+='B';
        }
        else if(b==c){
            string nx = s[j+1];
            if(nx=="BC"){
                b++;c--;
                ans+='B';
            }
            else{
                if(nx=="AC"){
                    b--;c++;
                    ans+="C";
                }
                if(nx=="AB"){
                    b++;c--;
                    ans+="B";
                }
            }
        }
        else{
            if(b<c){
                b++;c--;
                ans+='B';
            }
            else{
                b--;c++;
                ans+='C';
            }
        }
    }
    return  true;
}

int main(){
    cin >> n >> a >> b >> c;
    s.resize(n+1);
    rep(i,n)cin >> s[i];
    s[n]=s[n-1];
    ans="";
    ll S = a+b+c;
    if(S==0){
        cout << "No" << endl;
        return 0;
    }
    if(S==1){
        rep(i,n){
            if(!f(s[i])){
                cout << "No" << endl;
                return 0;
            }
        }
        cout << "Yes" << endl;
        rep(i,n){
            cout << ans[i] << endl;
        }
    }
    if(S>=2){
        rep(i,n){
            if(!g(i)){
                cout << "No" << endl;
                return 0;
            }
        }
        cout << "Yes" << endl;
        rep(i,n){
            cout << ans[i] << endl;
        }
    }
    return 0;
}


Measured memory_bytes: 6700