#include <bits/stdc++.h>
using namespace std;
using ll=long long;
const ll MOD=1000000007;
const double PI=3.14159265358979;
const ll INF= pow(10,18);
typedef pair<ll,ll> P;
typedef vector<ll> vl;
typedef vector<vl> vvl;
#define FOR(i,a,b) for(ll i=a;i<b;i++)
#define rep(i,n) FOR(i,0,n)
string abc="abcdefghijklmnopqrstuvwxyz";
string ABC="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
struct edge{ll to,cost;};

int main() {
  ll n,a,b,c;
  cin >> n >> a >> b >> c;
  vector<string> s(n);
  bool D=true;
  vector<char> e(n);
  rep(i,n){
    cin >> s[i];
  }
  if(a+b+c==0){
    cout << "No" << endl;
  }
  else if(a+b+c==1){
    rep(i,n){
      if((a==1&&s[i]=="BC")||(b==1&&s[i]=="AC")||c==1&&s[i]=="AB"){
        D=false;
      }
      else{
        if(s[i]=="BC"){
          if(b==0){
            e[i]='B';
          }
          else{
            e[i]='C';
          }
          b=1-b;
          c=1-c;
        }
        else if(s[i]=="AB"){
          if(a==0){
            e[i]='A';
          }
          else{
            e[i]='B';
          }
          a=1-a;
          b=1-b;
        }
        else{
          if(c==1){
            e[i]='A';
          }
          else{
            e[i]='C';
          }
          a=1-a;
          c=1-c;
        }
      }
    }
    if(!D){
      cout << "No" << endl;
    }
    else{
      cout << "Yes" << endl;
      rep(i,n){
        cout << e[i] << endl;
      }
    }
  }
  else{
    if((b+c==0&&s[0]=="BC")||(a+b==0&&s[0]=="AB")||(a+c==0&&s[0]=="AC")){
      cout << "No" << endl;
      return 0;
    }
    else{
      cout << "Yes" << endl;
    }
    rep(i,n){
      if(s[i]=="AB"){
        if(min(a,b)>=2){
          e[i]='A';
          a++;
          b--;
        }
        else if(min(a,b)==0){
          if(a==0){
            e[i]='A';
            a++;
            b--;
          }
          else{
            e[i]='B';
            b++;
            a--;
          }
        }
        else{
          if(i!=n-1&&s[i+1]=="BC"){
            e[i]='B';
            b++;
            a--;
          }
          else{
            e[i]='A';
            a++;
            b--;
          }
        }
      }
      else if(s[i]=="AC"){
        if(min(a,c)>=2){
          e[i]='A';
          a++;
          c--;
        }
        else if(min(a,c)==0){
          if(a==0){
            e[i]='A';
            a++;
            c--;
          }
          else{
            e[i]='C';
            c++;
            a--;
          }
        }
        else{
          if(i!=n-1&&s[i+1]=="AB"){
            e[i]='A';
            a++;
            c--;
          }
          else{
            e[i]='C';
            c++;
            a--;
          }
        }
      }
      else{
        if(min(b,c)>=2){
          e[i]='B';
          b++;
          c--;
        }
        else if(min(b,c)==0){
          if(b==0){
            b++;
            c--;
            e[i]='B';
          }
          else{
            c++;
            b--;
            e[i]='C';
          }
        }
        else{
          if(i!=n-1&&s[i+1]=="AB"){
            b++;
            c--;
            e[i]='B';
          }
          else{
            c++;
            b--;
            e[i]='C';
          }
        }
      }
    }
    rep(i,n){
      cout << e[i] << endl;
    }
  }
}

Measured memory_bytes: 6428