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

signed main(void){
 
  int n,a,b,c; cin >> n >> a >> b >> c;
  vector<string> s(n);
  for(int i = 0; i < n; i++){ 
    cin >> s[i];
  }

  bool flag = true;
  
  vector<char> ans;
  
  if( a+b+c == 0 ){ cout << "No" << endl; return 0;}
  
  else if( a+b+c == 1 ){
    
    for(int i = 0; i < n; i++){ 
      
      if( s[i] == "AB"){ 
        if( a == 0 && b == 0 ){ 
          flag = false; break;}
        else{
          if( a == 1 ){ 
             ans.push_back('B');
            a--; b++;
          }
          else{
            ans.push_back('A');
            a++; b--;
          }
        }
      }
      if( s[i] == "BC"){ 
        if( b == 0 && c == 0 ){ 
          flag = false; break;}
        else{
          if( b == 1 ){ 
             ans.push_back('C');
            b--; c++;
          }
          else{
            ans.push_back('B');
            b++; c--;
          }
        }
      }
      if( s[i] == "AC"){ 
        if( a == 0 && c == 0 ){ 
          flag = false; break;}
        else{
          if( a == 1 ){ 
             ans.push_back('C');
            a--; c++;
          }
          else{
            ans.push_back('A');
            a++; c--;
          }
        }
      }
    }//for-閉じ
  }// a+b+c == 1
  else if( a+b+c == 2 ){
    
    for(int i = 0; i < n; i++){ 
      
      if( s[i] == "AB" ){ 
        if( a == 2 ){ 
          a--; b++;
          ans.push_back('B');
        }
        else if( b == 2 ){ 
          a++; b--;
          ans.push_back('A');
        }
        else if( a == 0 && b == 0 ){ 
          flag = false; break;
        }
        else if( a == 1 && b == 0 ){ 
          a--; b++;
          ans.push_back('B');
        }
        else if( a == 0 && b == 1 ){ 
          a++; b--;
          ans.push_back('A');
        }
        else if( a == 1 && b == 1 ){ 
          if( i < n-1 ){ //次がある場合
            if( s[i+1] == "AC"){ 
              a++; b--;
              ans.push_back('A');
            }
            else if( s[i+1] ==  "BC" ){ 
              a--; b++;
              ans.push_back('B');
            }
            else{
              a++; b--;
              ans.push_back('A');
            }
          }
          else{//次がない
            ans.push_back('A');
          }
        }// else - if a == 1 and b == 1
      }// if - AB
      
    
      
      if( s[i] == "BC" ){ 
        if( b == 2 ){ 
          b--; c++;
          ans.push_back('C');
        }
        else if( c == 2 ){ 
          b++; c--;
          ans.push_back('B');
        }
        else if( b == 0 && c == 0 ){ 
          flag = false; break;
        }
        else if( b == 1 && c == 0 ){ 
          b--; c++;
          ans.push_back('C');
        }
        else if( b == 0 && c == 1 ){ 
          b++; c--;
          ans.push_back('B');
        }
        else if( b == 1 && c == 1 ){ 
          if( i < n-1 ){ //次がある場合
            if( s[i+1] == "AC"){ 
              c++; b--;
              ans.push_back('C');
            }
            else if( s[i+1] ==  "BC" ){ 
              b++; c--;
              ans.push_back('B');
            }
            else{
             b++; c--;
              ans.push_back('B');
            }
          }
          else{//次がない
            ans.push_back('B');
          }
        }// else - if b == 1 and c == 1
      }// if - BC
      
      
      if( s[i] == "AC" ){ 
        if( a == 2 ){ 
          a--; c++;
          ans.push_back('C');
        }
        else if( c == 2 ){ 
          a++; c--;
          ans.push_back('A');
        }
        else if( a == 0 && c == 0 ){ 
          flag = false; break;
        }
        else if( a == 1 && c == 0 ){ 
          a--; c++;
          ans.push_back('C');
        }
        else if( a == 0 && c == 1 ){ 
          a++; c--;
          ans.push_back('A');
        }
        else if( a == 1 && c == 1 ){ 
          if( i < n-1 ){ //次がある場合
            if( s[i+1] == "AC"){ 
              a++; c--;
              ans.push_back('A');
            }
            else if( s[i+1] ==  "BC" ){ 
              a--; c++;
              ans.push_back('C');
            }
            else{
              a++; c--;
              ans.push_back('A');
            }
          }
          else{//次がない
            ans.push_back('A');
          }
        }// else - if a == 1 and b == 1
      }// if - AB
    }//for-i
  }// a+b+c == 2
  
  
  
  else{ //a+b+c >= 3の時
  
    for(int i = 0; i < n; i++){ 
      
      if( s[i] == "AB" ){ 
        if( a == 0 && b == 0 ){ 
          flag = false; break;
        }
        else{
          if( a > b ){ 
            a--; b++; 
            ans.push_back('B');
          }
          else{
            a++; b--;
            ans.push_back('A');
          }
        }
      }//s == AB
    else if( s[i] == "BC" ){
      if( b == 0 && c == 0 ){ 
          flag = false; break;
        }
        else{
          if( b > c ){ 
            b--; c++;
            ans.push_back('C');
          }
          else{
            c--; b++;
            ans.push_back('B');
          }
        }
      }// s == BC
    else if( s[i] == "AC" ){ 
      if( c == 0 && a == 0 ){ 
        flag = false; break;
      }
      else{
        if( c > a ){ 
          c--; a++;
          ans.push_back('A');
        }
        else{
          c++; a--;
          ans.push_back('C');
          }
      }//else
     } //s == CA
    }//for-i
  }// a+b+c >= 3
  
  if(!flag){ cout << "No" << endl;}
  else{
    cout << "Yes" << endl;
    for(int i = 0; i < n; i++){ 
      cout << ans[i] << endl;
    }
  }
    
  
  
  return 0;
}

Measured memory_bytes: 6720