#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
#define rep(i,n) for (int i = 0; i < (n); ++i)
template<class T>bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T>bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; }
const ll INF=1LL<<60;
const int inf=1<<30;
const int mod=1e9+7;
int dx[4]={1,0,-1,0};
int dy[4]={0,1,0,-1};
int main(){
    cin.tie(0);
    ios::sync_with_stdio(false);
    int n,a,b,c;cin >> n >> a >> b >> c;
    vector<string> s(n);
    rep(i,n) cin >> s[i];
    vector<char> ans(n);
    if(a+b+c==2){
      rep(i,n-1){
        if(s[i]=="AB"){
          if(a==0&&b==0){
            cout << "No" << endl;
            return 0;
          }
          if(a>b){
            a--,b++;
            ans[i]='B';
          }
          else if(a<b){
            a++,b--;
            ans[i]='A';
          }
          else{
            if(s[i+1]=="AB"){
              a++,b--;
              ans[i]='A';
            }
            else if(s[i+1]=="BC"){
              a--,b++;
              ans[i]='B';
            }
            else{
              a++,b--;
              ans[i]='A';
            }
          }
        }
        else if(s[i]=="BC"){
          if(b==0&&c==0){
            cout << "No" << endl;
            return 0;
          }
          if(b>c){
            b--,c++;
            ans[i]='C';
          }
          else if(b<c){
            b++,c--;
            ans[i]='B';
          }
          else{
            if(s[i+1]=="AB"){
              b++,c--;
              ans[i]='B';
            }
            else if(s[i+1]=="BC"){
              b++,c--;
              ans[i]='B';
            }
            else{
              c++,b--;
              ans[i]='C';
            }
          }
        }
        else{
          if(a==0&&c==0){
            cout << "No" << endl;
            return 0;
          }
          if(a>c){
            a--,c++;
            ans[i]='C';
          }
          else if(a<c){
            a++,c--;
            ans[i]='A';
          }
          else{
            if(s[i+1]=="AB"){
              a++,c--;
              ans[i]='A';
            }
            else if(s[i+1]=="BC"){
              c++,a--;
              ans[i]='C';
            }
            else{
              c++,a--;
              ans[i]='C';
            }
          }
        }
      }
      if(s[n-1]=="AB"){
        if(a>b){
          ans[n-1]='B';
        }
        else{
          ans[n-1]='A';
        }
      }
      else if(s[n-1]=="BC"){
        if(b>c){
          ans[n-1]='C';
        }
        else{
          ans[n-1]='B';
        }
      }
      else{
        if(c>a){
          ans[n-1]='A';
        }
        else{
          ans[n-1]='C';
        }
      }
      cout << "Yes" << endl;
      for(char x:ans){
        cout << x << endl;
      }
      return 0;
    }
    rep(i,n){
      if(s[i]=="AB"){
        if(a+b==0){
          cout << "No" << endl;
          return 0;
        }
        if(a>b){
          ans[i]='B';
          a--,b++;
        }
        else{
          ans[i]='A';
          a++,b--;
        }
      }
      else if(s[i]=="BC"){
        if(b+c==0){
          cout << "No" << endl;
          return 0;
        }
        if(b>c){
          ans[i]='C';
          b--,c++;
        }
        else{
          ans[i]='B';
          b++,c--;
        }
      }
      else{
        if(a+c==0){
          cout << "No" << endl;
          return 0;
        }
        if(c>a){
          ans[i]='A';
          a++,c--;
        }
        else{
          ans[i]='C';
          c++,a--;
        }
      }
    }
    cout << "Yes" << endl;
    for(char c:ans){
      cout << c << endl;
    }
}

Measured memory_bytes: 6656