// #pragma GCC optimize("O3", "unroll-loops")
// #pragma GCC target("avx2")
 
#include <bits/stdc++.h>
using namespace std;
 
// #include <ext/pb_ds/assoc_container.hpp> 
// #include <ext/pb_ds/tree_policy.hpp> 
// using namespace __gnu_pbds;
// #define ost tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update> 
 
#define    int                      long long int
#define    ld                       long double
#define    f(i,j,n)                 for(int i = j; i <= n; i++)
#define    r(i,n,j)                 for(int i = n; i >= j; i--)
#define    mod                      1000000007
#define    speed                    ios_base::sync_with_stdio(false);
#define    upp                      cin.tie(NULL),cout.tie(NULL);
#define    pb                       push_back
#define    mp                       make_pair
#define    T                        int ttt; cin >> ttt; while(ttt--)
#define    ff                       first
#define    ss                       second
#define    all(container)            container.begin() , container.end()
#define    sz(container)            (int)container.size()
#define    pii                      pair <int , int>
#define    sp(x)                    setprecision(x)
#define    bp(x)                    __builtin_popcount(x)
#define    endl                     "\n"
int power(int x, int y, int p)  
{  
    int res = 1;    
    x = x % p; 
    if (x == 0) return 0; 
    while (y > 0)  
    {     
        if (y & 1)  
            res = (res*x) % p;  
        y = y>>1; 
        x = (x*x) % p;  
    }  
    return res; 
}

int32_t main()
{
    speed upp
    int n,a,b,c,ff=1;
    cin>>n>>a>>b>>c;
    vector<char>ans;
    string ss[n+1],s;
    f(i,1,n)
        cin>>ss[i];
    f(i,1,n)
    {
        s=ss[i];
        if(s[0]=='A' && s[1]=='B')
        {
            if(a==0 && b==0)
                ff=0;
            else if( a<b)
            {
                a+=1;
                b-=1;
                ans.pb('A');
            }
            else if(b<a)
            {
                a-=1;
                b+=1;
                ans.pb('B');
            }
            else 
            {
                if(i<n)
                {
                    if(ss[i+1]=="AC")
                    {
                        a+=1;
                        b-=1;
                        ans.pb('A');
                    }
                    else
                    {
                        a-=1;
                        b+=1;
                        ans.pb('B');
                    }
        
                }
                else
                    ans.pb('A');
            }
        }
        if(s[0]=='B' && s[1]=='C')
        {
            if(c==0 && b==0)
                ff=0;
            else if( b<c)
            {
                b+=1;
                c-=1;
                ans.pb('B');
            }
            else if( c<b)
            {
                c+=1;
                b-=1;
                ans.pb('C');
            }
            else 
            {
                if(i<n)
                {
                    if(ss[i+1]=="AC")
                    {
                        c+=1;
                        b-=1;
                        ans.pb('C');
                    }
                    else
                    {
                        c-=1;
                        b+=1;
                        ans.pb('B');
                    }
        
                }
                else
                    ans.pb('C');
            }
        }
        if(s[0]=='A' && s[1]=='C')
        {
            if(c==0 && a==0)
                ff=0;
            else if(  c<a)
            {
                a-=1;
                c+=1;
                ans.pb('C');
            }
            else if(a<c)
            {
                a+=1;
                c-=1;
                ans.pb('A');
            }
            else 
            {
                if(i<n)
                {
                    if(ss[i+1]=="BC")
                    {
                        c+=1;
                        a-=1;
                        ans.pb('C');
                    }
                    else
                    {
                        c-=1;
                        a+=1;
                        ans.pb('A');
                    }
                }
                else
                    ans.pb('C');
            }
        }
      //  cout<<a<<"   "<<b<<"   "<<c<<endl;
    }
    if(ff==0)
        cout<<"No";
    else
    {
        cout<<"Yes\n";
        f(i,0,sz(ans)-1)
                cout<<ans[i]<<endl;
    }
}


Measured memory_bytes: 6920