#include <iostream>
#include <cstdio>
#include <vector>

using namespace std;

typedef long long ll;

ll n;
ll a, b, c;
string s[100005];
vector<char> ve;

int main()
{
    scanf("%lld%lld%lld%lld", &n, &a, &b, &c);
    for(ll i = 0; i < n; i++)
    {
        cin>>s[i];
    }
    for(ll i = 0; i < n; i++)
    {
        if(s[i] == "AB")
        {
            if(a == 0 && b == 0)
            {
                printf("No\n");
                return 0;
            }
            if(a == 0)
            {
                b--, a++;
                ve.push_back('A');
            }
            else if(b == 0)
            {
                a--, b++;
                ve.push_back('B');
            }
            else if(a == 1 && b == 1)
            {
                if(s[i + 1] == "BC")
                {
                    a--, b++;
                    ve.push_back('B');
                }
                else
                {
                    b--, a++;
                    ve.push_back('A');
                }
            }
            else if(a == 1)
            {
                b--, a++;
                ve.push_back('A');
            }
            else if(b == 1)
            {
                a--, b++;
                ve.push_back('B');
            }
            else
            {
                a--, b++;
                ve.push_back('B');
            }
        }
        else if(s[i] == "BC")
        {
            if(b == 0 && c == 0)
            {
                printf("No\n");
                return 0;
            }
            if(b == 0)
            {
                c--, b++;
                ve.push_back('B');
            }
            else if(c == 0)
            {
                b--, c++;
                ve.push_back('C');
            }
            else if(b == 1 && c == 1)
            {
                if(s[i + 1] == "AC")
                {
                    b--, c++;
                    ve.push_back('C');
                }
                else
                {
                    c--, b++;
                    ve.push_back('B');
                }
            }
            else if(b == 1)
            {
                c--, b++;
                ve.push_back('B');
            }
            else if(c == 1)
            {
                b--, c++;
                ve.push_back('C');
            }
            else
            {
                c--, b++;
                ve.push_back('B');
            }
        }
        else
        {
            if(a == 0 && c == 0)
            {
                printf("No\n");
                return 0;
            }
            if(a == 0)
            {
                c--, a++;
                ve.push_back('A');
            }
            else if(c == 0)
            {
                a--, c++;
                ve.push_back('C');
            }
            else if(a == 1 && c == 1)
            {
                if(s[i + 1] == "BC")
                {
                    a--, c++;
                    ve.push_back('C');
                }
                else
                {
                    c--, a++;
                    ve.push_back('A');
                }
            }
            else if(a == 1)
            {
                c--, a++;
                ve.push_back('A');
            }
            else if(c == 1)
            {
                a--, c++;
                ve.push_back('C');
            }
            else
            {
                a--, c++;
                ve.push_back('C');
            }
        }
    }
    printf("Yes\n");
    for(ll i = 0; i < n; i++)
    {
        printf("%c\n", ve[i]);
    }
    return 0;
}


Measured memory_bytes: 7084