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

#define jaldi ios_base::sync_with_stdio(false)
#define si(x) scanf("%d",&x)
#define sl(x) scanf("%ld",&x)
#define sll(x) scanf("%lld",&x)
#define sc(x) scanf("%c",&x)
#define ss(x) scanf("%s",x)
#define pi(x) printf("%d",x)
#define pl(x) printf("%ld",x)
#define pll(x) printf("%lld",x)
#define pc(x) printf("%c",x)
#define ps(x) printf("%s",x)
#define vll vector<long long>
#define vvll vector<vector<long long>> 
#define F first
#define S second
#define ll long long
#define pb push_back
#define PI 3.1415926535897932384626
#define precision(x) cout<<fixed<<setprecision(x) 
#define mod 1000000007

int x_d[8] = {-1,1,0,0,-1,-1,1,1};
int y_d[8] = {0,0,-1,1,-1,1,-1,1};

ll power(ll b,ll e)
{
    if(b==0)
        return 0;
    
    ll r=1;
    while(e>0)
    {
        if(e%2)
            r=(r*b)%mod;
        b=(b*b)%mod;
        e/=2;
    }
    return r;
}

int main()
{
    jaldi;
    precision(20);
    ll i,j;

    ll n,a,b,c;
    cin>>n>>a>>b>>c;
    string s;
    vector<string> v;
    for(i=0;i<n;i++)
    {
        cin>>s;
        v.push_back(s);
    }
    vector<char> ans;
    ll f=0;
    for(i=0;i<n-1;i++)
    {
        s=v[i];

        if(s=="AB")
        {
            if(a==0 && b==0)
                f=1;
            else if(a==1 && b==1)
            {
                if(v[i+1]=="BC")
                {
                    b++;
                    a--;
                    ans.pb('B');
                }
                else
                {
                    a++;
                    b--;
                    ans.pb('A');
                }
            }
            else
            {
                if(a>b)
                {
                    a--;
                    b++;
                    ans.pb('B');
                }
                else
                {
                    a++;
                    b--;
                    ans.pb('A');
                }
            }
        }
        else if(s=="BC")
        {
            if(b==0 && c==0)
                f=1;
            
            else if(b==1 && c==1)
            {
                if(v[i+1]=="AC")
                {
                    c++;
                    b--;
                    ans.pb('C');
                }
                else
                {
                    c--;
                    b++;
                    ans.pb('B');
                }
            }
            else
            {
                if(b>c)
                {
                    b--;
                    c++;
                    ans.pb('C');
                }
                else
                {
                    b++;
                    c--;
                    ans.pb('B');
                }
            }
        }
        else
        {
            if(a==0 && c==0)
                f=1;
            else if(a==1 && c==1)
            {
                if(v[i+1]=="AB")
                {
                    a++;
                    c--;
                    ans.pb('A');
                }
                else
                {
                    a--;
                    c++;
                    ans.pb('C');
                }
            }
            else
            {
                if(a>c)
                {
                    a--;
                    c++;
                    ans.pb('C');
                }
                else
                {
                    a++;
                    c--;
                    ans.pb('A');
                }
            }
        }
        if(f==1)
            break;
    }
    if(v[i]=="AB")
    {
        if(a==0 && b==0)
            f=1;
        else
        {
            if(a>0)
            {
                a--;
                b++;
                ans.pb('B');
            }
            else
            {
                a++;
                b--;
                ans.pb('A');
            }
        }
    }
    else if(v[i]=="BC")
    {
        if(b==0 && c==0)
            f=1;
        else
        {
            if(b>0)
            {
                b--;
                c++;
                ans.pb('C');
            }
            else
            {
                b++;
                c--;
                ans.pb('B');
            }
        }
    }
    else
    {
        if(a==0 && c==0)
            f=1;
        else
        {
            if(a>0)
            {
                a--;
                c++;
                ans.pb('C');
            }
            else
            {
                a++;
                c--;
                ans.pb('A');
            }
        }
    }
    if(f==1)
        cout<<"No"<<endl;
    else
    {
        cout<<"Yes"<<endl;
        for(i=0;i<ans.size();i++)
            cout<<ans[i]<<endl;
    }
    return 0;
}

Measured memory_bytes: 7500