#include <bits/stdc++.h>
using namespace std;

int main() {
  int N,A,B,C,Z=0;
  cin>>N>>A>>B>>C;
  vector<string> ima(N+1);
  vector<string> tugi(N+1);
  vector<int> ato(N+1);
  vector<string> kotae(N+1);
  int q=0;
  for(int i=0;i<N;i++){
    cin>>ima.at(i);
    if(i!=0){
      if(ima.at(i)!=ima.at(i-1)){
        for(int j=q;j<i;j++){
          ato.at(j)=i-q;
          tugi.at(j)=ima.at(i);
        }
        q=i;
      }
    }
  }
  for(int i=q;i<N;i++){
    tugi.at(i)="OWA";
    ato.at(i)=N-i;
  }
  int i=0;
  while(i<=N-1){
    if(ima.at(i)=="AB"){
      if(A==0&&B==0){
        Z++;
        break;
      }
      else if(A+B!=2||((A==B&&ato.at(i)%2==0)||(A!=B&&ato.at(i)%2==1))){
        for(int j=i;j<i+ato.at(i);j++){
          if(A>B){
            A--,B++;
            kotae.at(j)="B";
          }
          else{
            B--,A++;
            kotae.at(j)="A";
          }
          
        }
        
      }
      else{
        if(tugi.at(i)=="AC"){
          for(int j=i;j<i+ato.at(i);j++){
            if(A<=B){
              B--,A++;
              kotae.at(j)="A";
            }
            else{
              A--,B++;
              kotae.at(j)="B";
            }
          }
        }
        else{
          for(int j=i;j<i+ato.at(i);j++){
            if(A>=B){
              A--,B++;
              kotae.at(j)="B";
            }
            else{
              B--,A++;
              kotae.at(j)="A";
            }
          }
        }
      }
      i+=ato.at(i);
    }
    
    if(ima.at(i)=="AC"){
      if(A==0&&C==0){
        Z++;
        break;
      }
      else if(A+C!=2||((A==C&&ato.at(i)%2==0)||(A!=C&&ato.at(i)%2==1))){
        for(int j=i;j<i+ato.at(i);j++){
          if(A>C){
            A--,C++;
            kotae.at(j)="C";
          }
          else{
            C--,A++;
            kotae.at(j)="A";
          }
          
        }
      }
      else{
        if(tugi.at(i)=="AB"){
          for(int j=i;j<i+ato.at(i);j++){
            if(A<=C){
              C--,A++;
              kotae.at(j)="A";
            }
            else{
              A--,C++;
              kotae.at(j)="C";
            }
          }
        }
        else{
          for(int j=i;j<i+ato.at(i);j++){
            if(A>=C){
              A--,C++;
              kotae.at(j)="C";
            }
            else{
              C--,A++;
              kotae.at(j)="A";
            }
          }
        }
      }
      i+=ato.at(i);
    }
    
    if(ima.at(i)=="BC"){
      if(C==0&&B==0){
        Z++;
        break;
      }
      else if(C+B!=2||((C==B&&ato.at(i)%2==0)||(C!=B&&ato.at(i)%2==1))){
        for(int j=i;j<i+ato.at(i);j++){
          if(C>B){
            C--,B++;
            kotae.at(j)="B";
          }
          else{
            B--,C++;
            kotae.at(j)="C";
          }
          
        }
      }
      else{
        if(tugi.at(i)=="AC"){
          for(int j=i;j<i+ato.at(i);j++){
            if(C<=B){
              B--,C++;
              kotae.at(j)="C";
            }
            else{
              C--,B++;
              kotae.at(j)="B";
            }
          }
        }
        else{
          for(int j=i;j<i+ato.at(i);j++){
            if(C>=B){
              C--,B++;
              kotae.at(j)="B";
            }
            else{
              B--,C++;
              kotae.at(j)="C";
            }
          }
        }
      }
      i+=ato.at(i);
    }
  }
  if(Z==1){
    cout<<"No"<<endl;
  }
  else{
    cout<<"Yes"<<endl;
    for(int d=0;d<N;d++){
      cout<<kotae.at(d)<<endl;
    }
  }
        
        
}





Measured memory_bytes: 13028