#include<bits/stdc++.h>
using namespace std;
int const nax = 3e5 + 10;

int n, a, b, c;
string s[nax];
char ans[nax];
int main () {



    scanf("%d %d %d %d", &n, &a, &b, &c);


    for (int i = 1 ; i <= n ; ++ i) {
        static char buf[5];
        scanf("%s", buf);
        s[i] = string(buf);
    }

    #define no return !printf("No")
    if (s[1] == "AB" && a + b == 0) no;
    else if (s[1] == "BC" && b + c == 0) no;
    else if (s[1] == "AC" && a + c == 0) no;

    if (a + b + c >= 3) {

        for (int i = 1 ; i <= n ; ++ i)
        {
        if (s[i] == "AB") {
            if (b >= a) ans[i] = 'A', ++ a, -- b;
            else ans[i] = 'B', ++ b, -- a;
        } else if (s[i] == "AC") {
            if (c >= a) ans[i] = 'A', ++ a, -- c;
            else ans[i] = 'C', ++ c, -- a;
        } else if (s[i] == "BC") {
            if (c >= b) ans[i] = 'B', ++ b, -- c;
            else ans[i] = 'C', -- b, ++ c;
        }
        }
    } else if (a + b + c == 2) {
        for (int i = 1 ; i <= n ; ++ i) {
            if (s[i] == "AB") {
                if (b > a) ans[i] = 'A', ++ a, -- b;
                else if (a > b) ans[i] = 'B', ++ b, -- a;
                else {
                    if (i == n) {
                        ans[i] = 'A', ++ a, -- b;
                    } else {
                        if (s[i + 1] == "AB") ans[i] = 'A', ++ a, -- b;
                        else if (s[i + 1] == "AC") ans[i] = 'A', ++ a, -- b;
                        else if (s[i + 1] == "BC") ans[i] = 'B', ++ b, -- a;
                    }
                }
            } else if (s[i] == "BC") {
                if (b > c) ans[i] = 'C', ++ c, -- b;
                else if (c > b) ans[i] = 'B', -- c, ++ b;
                else {
                    if (i == n) {
                        ans[i] = 'B', ++ b, -- c;
                    } else {
                        if (s[i + 1] == "BC") ans[i] = 'C', ++ c, -- b;
                        else if (s[i + 1] == "AB") ans[i] = 'B', ++ b, -- c;
                        else if (s[i + 1] == "AC") ans[i] = 'C', ++ c, -- b;
                    }
                }
            } else if (s[i] == "AC") {
                if (a > c) ans[i] = 'C', ++ c, -- a;
                else if (c > a) ans[i] = 'A',  ++ a, -- c;
                else {
                    if (i == n) {
                        ans[i] = 'C', ++ c, -- a;
                    } else {
                        if (s[i + 1] == "AC") ans[i] = 'C', ++ c, -- a;
                        else if (s[i + 1] == "AB") ans[i] = 'A', ++ a, -- c;
                        else if (s[i + 1] == "BC") ans[i] = 'C', ++ c, -- a;
                    }

                }

            }else throw;
        }

    } else if (a + b + c == 1) {
        for (int i = 1 ; i <= n ; ++ i) {
            if (s[i] == "AB") {
                if (a + b == 0) no;
                else if (b > 0) ans[i] = 'A', ++ a, -- b;
                else if (a > 0) ans[i] = 'B', ++ b, -- a;
                else assert(false);
            }
            else if (s[i] == "AC") {
                if (a + c == 0) no;
                else if (c > 0) ans[i] = 'A', ++ a, -- c;
                else if (a > 0) ans[i] = 'C', ++ c, -- a;
                else assert(false);
            }
            else if (s[i] == "BC") {
                if (b + c == 0) no;
                else if (b > 0) ans[i] = 'C', ++ c, -- b;
                else if (c > 0) ans[i] = 'B', ++ b, -- c;
                else assert(false);
            }
        }
    } else no;


    puts("Yes");

    for (int i = 1 ; i <= n ; ++ i) {
        putchar(ans[i]);
        puts("");
    }

}

/*
    Good Luck
        -Lucina
*/


Measured memory_bytes: 13244