#include<bits/stdc++.h>


using namespace std;
#define ll long long
#define ld long double
#define pb push_back
#define all(n) n.begin(),n.end()
#define eb emplace_back
#define endl "\n"

const ll maxn=5e5;

const ll maxx=1e13;
const ll mod=1000000007;
const ll mod1=998244353;

ll a[maxn];
map<ll,ll> mp;
string s[maxn];
int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    //freopen("test.txt","r",stdin);
    //   freopen("GREEDY.INP", "r", stdin);
    //  freopen("GREEDY.OUT", "w", stdout);
   ll n,a,b,c;
    cin>>n>>a>>b>>c;
    for (int i=1;i<=n;i++)
    {
      cin>>s[i];
    }
    vector<char> ans;
    for (int i=1;i<=n;i++)
    {

        if (s[i]=="AB")
        {
            if (a==b)
            {
              if (i==n||s[i+1]=="AB")
              {
                  ans.pb('A');
                  a++;
                  b--;
              }
              else
              {
                 if (s[i+1]=="AC")
                 {
                      ans.pb('A');
                     a++;
                      b--;
                 }
                 else
                 {
                      ans.pb('B');
                     a--;
                      b++;
                 }
              }
            }
            else if (a>b)
            {
                ans.pb('B');
                a--;
                b++;
            }
            else
            {
                ans.pb('A');
                a++;
                b--;
            }
        }
        else if (s[i]=="AC")
        {
            if (a==c)
            {
                if (i==n||s[i+1]=="AC")
              {
                  ans.pb('A');
                  a++;
                  c--;
              }
              else
              {
                  if (s[i+1]=="AB")
                  {
                       ans.pb('A');
                  a++;
                  c--;
                  }
                  else
                  {
                       ans.pb('C');
                  c++;
                  a--;
                  }
              }
            }
            else if (a>c)
            {
                ans.pb('C');
                a--;
                c++;
            }
            else
            {
               ans.pb('A');
                a++;
                c--;
            }
        }
        else
        {
            if (b==c)
            {
             if (i==n||s[i+1]=="BC")
              {
                  ans.pb('B');
                  b++;
                  c--;
              }
              else
              {
                  if (s[i+1]=="AB")
                  {
                       ans.pb('B');
                  b++;
                  c--;
                  }
                  else
                  {
                       ans.pb('C');
                  c++;
                  b--;
                  }
              }
            }
            else if (b>c)
            {
                ans.pb('C');
                b--;
                c++;
            }
            else
            {
                ans.pb('B');
                b++;
                c--;
            }
        }
        if (a>=0&&b>=0&&c>=0)
    {

    }
    else
    {
        cout <<"No"<<endl;
        return 0;
    }
    }
    if (a>=0&&b>=0&&c>=0)
    {
        cout <<"Yes"<<endl;
        for (auto p:ans)
        {
            cout <<p<<endl;
        }
    }
    else
    {
        cout <<"No"<<endl;
    }


}


Measured memory_bytes: 19408