#include <bits/stdc++.h>
using namespace std;
int n, O, A, B, AB, brO, brA, brB, brAB, OzaA, OzaB, visakA, visakB;
struct slog{
string krv_grupa;
int br_jed, resO, resA, resB, resAB;
}s[1005];
void bio_je_faul(){
  for(int i=1; i<=n; i++){
    if(s[i].krv_grupa=="O"){
        s[i].resO=s[i].br_jed;
        O-=s[i].br_jed;
    }

    else if(s[i].krv_grupa=="A"){
            if(s[i].br_jed<=A){
            s[i].resA = s[i].br_jed;
            A -= s[i].br_jed;
        }
        else{
            s[i].resA = A;
            s[i].br_jed -= A;
            A=0;
            s[i].resO = s[i].br_jed;
            O -= s[i].br_jed;
        }
    }

    else if(s[i].krv_grupa=="B"){
        if(s[i].br_jed<=B){
            s[i].resB = s[i].br_jed;
            B -= s[i].br_jed;
        }
        else{
            s[i].resB = B;
            s[i].br_jed -= B;
            B=0;
            s[i].resO = s[i].br_jed;
            O -= s[i].br_jed;
        }
    }
    else{
        if(s[i].br_jed<=AB){
            s[i].resAB = s[i].br_jed;
            AB -= s[i].br_jed;
        }
         else if(s[i].br_jed<=AB+visakA){
            s[i].resAB = AB;
            s[i].br_jed -= AB;
            AB = 0;
            s[i].resA = s[i].br_jed;
            visakA -= s[i].br_jed;
         }
          else if(s[i].br_jed<=AB + visakA + visakB){
             s[i].resAB = AB;
             s[i].br_jed -= AB;
             AB = 0;
             s[i].resA = visakA;
             s[i].br_jed -= visakA;
             s[i].resB = s[i].br_jed;
             visakB -= s[i].br_jed;
          }
            else{
                 s[i].resAB = AB;
                 s[i].br_jed -= AB;
                 AB = 0;
                 s[i].resA = visakA;
                 s[i].br_jed -= visakA;
                 s[i].resB = visakB;
                 s[i].br_jed -= visakB;
                 visakB = 0;
                 s[i].resO = s[i].br_jed;
                 O -= s[i].br_jed;
            }
    }
  }
}

int main(){
 cin>>n>>O>>A>>B>>AB;
 for(int i=1; i<=n; i++){
    cin>>s[i].krv_grupa;
    scanf("%d", &s[i].br_jed);
    ///KOLIKO MI TREBA JEDINICA
     if(s[i].krv_grupa=="O")brO+=s[i].br_jed;
     if(s[i].krv_grupa=="A")brA+=s[i].br_jed;
     if(s[i].krv_grupa=="B")brB+=s[i].br_jed;
     if(s[i].krv_grupa=="AB")brAB+=s[i].br_jed;
    ///-----------------------------------
 }
 ///KOLIKO JE POTREBNO O U A i B
  if(brA>A)OzaA = brA-A;
  else  visakA = A-brA;
  if(brB>B)OzaB = brB-B;
  else  visakB = B-brB;
 ///--------------------

 if(O<(brO+OzaA+OzaB)){
    cout<<"nemoguce"<<endl;
    return 0;
 }
 if(brAB>(AB+(A+OzaA-brA)+(B+OzaB-brB)+(O-brO-OzaA-OzaB))){
    cout<<"nemoguce"<<endl;
    return 0;
 }
 cout<<"moguce"<<endl;
 bio_je_faul();
 for(int i=1; i<=n; i++){
    cout<<s[i].resO<<" "<<s[i].resA<<" "<<s[i].resB<<" "<<s[i].resAB<<endl;
 }


return 0;}