#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
#include<queue>
#include<map>
#include<math.h>
#include<iomanip>
#include<set>
#include<numeric>
#include<cstring>
#include<cstdio>
#include<functional>
#include<bitset>
#include<limits.h>
#include<cassert>
#include<iterator>
#include<complex>
#include<stack>
#include<unordered_map>
#include<unordered_set>
#include<time.h>
#include<random>
#include<array>
using namespace std;
using ll = long long;
#define rep(i, a, b) for(int i = a; i < b; i++)
#define rrep(i, a, b) for(int i = b - 1; i >= a; i--)
template <typename T> void Exit(T first){cout << first << endl;exit(0); };

int main(){
    int N, A, B, C; cin >> N >> A >> B>> C;
    vector<string> S(N); rep(i, 0, N) cin >> S[i];
    vector<char> ans(N);
    if(A + B + C >= 3){
        rep(i, 0, N){
            if(S[i] == "AB"){
                if(A < B) B--, A++, ans[i] = 'A';
                else A--, B++, ans[i] = 'B';
            }else if(S[i] == "AC"){
                if(A < C) C--, A++, ans[i] = 'A';
                else A--, C++, ans[i] = 'C';
            }else{
                if(C < B) B--, C++, ans[i] = 'C';
                else C--, B++, ans[i] = 'B';
            }
            if(A < 0 || B < 0 || C < 0) Exit("No");
        }
    }else if(A + B + C == 2){
        rep(i, 0, N){
            if(S[i] == "AB"){
                if(A < B) B--, A++, ans[i] = 'A';
                else if(B < A) A--, B++, ans[i] = 'B';
                else{
                    if(A == 0 and B == 0) Exit("No");
                    else{
                        if(i == N - 1){
                            A++, B--, ans[i] = 'A';
                        }else if(S[i+1] == "AB"){
                            A++, B--, ans[i] = 'A';
                        }
                        else if(S[i+1] == "AC"){
                            A++, B--, ans[i] = 'A';
                        }else{
                            A--, B++, ans[i] = 'B';
                        }
                    }
                }
            }else if(S[i] == "AC"){
                if(A < C) C--, A++, ans[i] = 'A';
                else if(C < A) A--, C++, ans[i] = 'C';
                else{
                    if(A == 0 and C == 0) Exit("No");
                    else{
                        if(i == N - 1){
                            A++, C--, ans[i] = 'A';
                        }else if(S[i+1] == "AC"){
                            A++, C--, ans[i] = 'A';
                        }
                        else if(S[i+1] == "AB"){
                            A++, C--, ans[i] = 'A';
                        }else{
                            A--, C++, ans[i] = 'C';
                        }
                    }
                }
            }else{
                if(C < B) B--, C++, ans[i] = 'C';
                else if(C > B) C--, B++, ans[i] = 'B';
                else{
                    if(C == 0 and B == 0) Exit("No");
                    else{
                        if(i == N - 1){
                            C++, B--, ans[i] = 'C';
                        }else if(S[i+1] == "BC"){
                            C++, B--, ans[i] = 'C';
                        }
                        else if(S[i+1] == "AC"){
                            C++, B--, ans[i] = 'C';
                        }else{
                            C--, B++, ans[i] = 'B';
                        }
                    }
                }
            }
            if(A < 0 || B < 0 || C < 0) Exit("No");
        }
    }else if(A + B + C == 1){
        rep(i, 0, N){
            if(S[i] == "AB"){
                if(A < B) B--, A++, ans[i] = 'A';
                else A--, B++, ans[i] = 'B';
            }else if(S[i] == "AC"){
                if(A < C) C--, A++, ans[i] = 'A';
                else A--, C++, ans[i] = 'C';
            }else{
                if(C < B) B--, C++, ans[i] = 'C';
                else C--, B++, ans[i] = 'B';
            }
            if(A < 0 || B < 0 || C < 0) Exit("No");
        }
    }else{
        Exit("No");
    }
    cout << "Yes" << endl;
    rep(i, 0, N) cout << ans[i] << endl;


    return 0;
}

Measured memory_bytes: 6856