#include <bits/stdc++.h>

using namespace std;

long long N, A, B, C;

bool judge(string com)
{
    if (com == "AB")
    {
        if (A <= 0 && B <= 0)
        {
            return false;
        }
        else
        {
            return true;
        }
    }
    if (com == "AC")
    {
        if (A <= 0 && C <= 0)
        {
            return false;
        }
        else
        {
            return true;
        }
    }
    if (com == "BC")
    {
        if (B <= 0 && C <= 0)
        {
            return false;
        }
        else
        {
            return true;
        }
    }

    return false;
}

char act(string com)
{
    if (com == "AB")
    {
        if (A == 0 && B >= 0)
        {
            A = A + 1;
            B = B - 1;
            return 'A';
        }
        if (A >= 0 && B == 0)
        {
            A = A - 1;
            B = B + 1;
            return 'B';
        }
        
        if(A >= B){
            A=A-1;
            B=B+1;
            return 'B';
        }else{
            A=A+1;
            B=B-1;
            return 'A';
        }
    }

    if (com == "AC")
    {
        if (A == 0 && C >= 0)
        {
            A = A + 1;
            C = C - 1;
            return 'A';
        }
        if (A >= 0 && C == 0)
        {
            A = A - 1;
            C = C + 1;
            return 'C';
        }
        
        if(A >= C){
            A=A-1;
            C=C+1;
            return 'C';
        }else{
            A=A+1;
            C=C-1;
            return 'A';
        }

        
    }

    if (com == "BC")
    {
        if (B == 0 && C >= 0)
        {
            B = B + 1;
            C = C - 1;
            return 'B';
        }
        if (B >= 0 && C == 0)
        {
            B = B - 1;
            C = C + 1;
            return 'C';
        }
        
        if(B >= C){
            B=B-1;
            C=C+1;
            return 'C';
        }else{
            B=B+1;
            C=C-1;
            return 'B';
        }
    }

    return 'X';
}

char act(string com, string Ncom)
{
    if (com == "AB")
    {
        if (A >= 1 && B == 0)
        {
            A = A - 1;
            B = B + 1;
            return 'B';
        }
        if (A == 0 && B >= 1)
        {
            A = A + 1;
            B = B - 1;
            return 'A';
        }

        if (A == 1 && B == 1)
        {
            if (Ncom == "AC")
            {
                A = A + 1;
                B = B - 1;
                return 'A';
            }
            if (Ncom == "BC")
            {
                B = B + 1;
                A = A - 1;
                return 'B';
            }
        }

        
    }
    if (com == "AC")
    {
        if (A >= 1 && C == 0)
        {
            A = A - 1;
            C = C + 1;
            return 'C';
        }
        if (A == 0 && C >= 1)
        {
            A = A + 1;
            C = C - 1;
            return 'A';
        }

        if (A == 1 && C == 1)
        {
            if (Ncom == "AB")
            {
                A = A + 1;
                C = C - 1;
                return 'A';
            }
            if (Ncom == "BC")
            {
                C = C + 1;
                A = A - 1;
                return 'C';
            }
        }

        
    }

    if (com == "BC")
    {
        if (B >= 1 && C == 0)
        {
            B = B - 1;
            C = C + 1;
            return 'C';
        }
        if (B == 0 && C >= 1)
        {
            B = B + 1;
            C = C - 1;
            return 'B';
        }

        if (B == 1 && C == 1)
        {
            if (Ncom == "AB")
            {
                B = B + 1;
                C = C - 1;
                return 'B';
            }
            if (Ncom == "AC")
            {
                C = C + 1;
                B = B - 1;
                return 'C';
            }
        }
        
    }

    return act(com);
}

int main(void)
{

    map<long long, string> inp;
    list<char> ans;

    string ansFlg, tmp;

    cin >> N >> A >> B >> C;

    if (A + B + C <= 0)
    {
        cout << "No" << endl;
        return 0;
    }

    inp.clear();
    for (long long i = 0; i < N; i++)
    {
        cin >> tmp;
        inp[i] = tmp;
    }

    for (long long i = 0; i < N ; i++)
    {

        if (judge(inp[i]) == false)
        {
            cout << "No" << endl;
            return 0;
        }
        ans.push_back(act(inp[i], inp[i + 1]));

        // cout << "i:"<<i<<" A:" << A << " B:" << B << " C:" << C << endl;
    }

 

    // if (judge(tmp) == false)
    // {
    //     cout << "No" << endl;
    //     return 0;
    // }
    // ans.push_back(act(tmp));
    // cout << "A:" << A << " B:" << B << " C:" << C << endl;
    cout << "Yes" << endl;

    for (auto itr = ans.begin(); itr != ans.end(); ++itr)
    {
        cout << *itr << endl;
    }

    return 0;
}


Measured memory_bytes: 14596