#include <bits/stdc++.h>

using namespace std;

struct pacijent{
    string krvnaGrupa;
    int potrebnoJedinica; 
    int O=0;
    int A=0;
    int B=0;
    int AB=0;
};

int main() {
    int brojPacijenata;
    cin>>brojPacijenata;
    int zalO, zalA, zalB, zalAB;
    cin>>zalO>>zalA>>zalB>>zalAB;

    vector <pacijent> pacijenti(brojPacijenata);
    for(int i=0; i<brojPacijenata; i++){
        cin>>pacijenti[i].krvnaGrupa;
        cin>>pacijenti[i].potrebnoJedinica;
    }
    
    /*for(int i=0; i<brojPacijenata; i++){
        cout<<"krvna grupa pacijenta "<<i<<":"<<pacijenti[i].krvnaGrupa<<" ";
        cout<<"potrebno jedinica krvi pacijentu "<<i<<":"<<pacijenti[i].potrebnoJedinica<<endl;
    }*/
    
    vector <int> ABpacijenti;
    
    
    for(int i=0; i<brojPacijenata; i++){
        
        pacijent p=pacijenti[i];
        
        if(p.krvnaGrupa=="O"){
            if(zalO<pacijenti[i].potrebnoJedinica){
                cout<<"nemoguce"<<endl;
                    return 0;
            }else{
                zalO=zalO-pacijenti[i].potrebnoJedinica;
                pacijenti[i].O=pacijenti[i].potrebnoJedinica;
                pacijenti[i].potrebnoJedinica=0;
            }
        }else if(p.krvnaGrupa=="A"){
            if(zalA+zalO<pacijenti[i].potrebnoJedinica){
                cout<<"nemoguce"<<endl;
                return 0;
            }else{
                if(zalA<pacijenti[i].potrebnoJedinica){
                    pacijenti[i].potrebnoJedinica=pacijenti[i].potrebnoJedinica-zalA;
                    pacijenti[i].A=zalA;
                    zalA=0;
                    zalO=zalO-pacijenti[i].potrebnoJedinica;
                    pacijenti[i].O=pacijenti[i].potrebnoJedinica;
                    pacijenti[i].potrebnoJedinica=0;
                }else{
                    zalA=zalA-pacijenti[i].potrebnoJedinica;
                    pacijenti[i].A=pacijenti[i].potrebnoJedinica;
                    pacijenti[i].potrebnoJedinica=0;
                }
            }
        }else if(p.krvnaGrupa=="B"){
            if(zalB+zalO<pacijenti[i].potrebnoJedinica){
                cout<<"nemoguce"<<endl;
                return 0;
            }else{
                if(zalB<pacijenti[i].potrebnoJedinica){
                    pacijenti[i].potrebnoJedinica=pacijenti[i].potrebnoJedinica-zalB;
                    pacijenti[i].B=zalB;
                    zalB=0;
                    zalO=zalO-pacijenti[i].potrebnoJedinica;
                    pacijenti[i].O=pacijenti[i].potrebnoJedinica;
                    pacijenti[i].potrebnoJedinica=0;
                }else{
                    zalB=zalB-pacijenti[i].potrebnoJedinica;
                    pacijenti[i].B=pacijenti[i].potrebnoJedinica;
                    pacijenti[i].potrebnoJedinica=0;
                }
            }
        }else if(p.krvnaGrupa=="AB"){
            //nije gotovo! jeste
            if(zalA+zalAB+zalB+zalO<pacijenti[i].potrebnoJedinica){
                cout<<"nemoguce"<<endl;
                return 0;
            }else{
                ABpacijenti.push_back(i);
            }
        }
        
    }
    
    int brZal=0;
    
    for(int i=0; i<ABpacijenti.size(); i++){
        while(pacijenti[ABpacijenti[i]].potrebnoJedinica!=0){
            if(brZal==0){
                if(pacijenti[ABpacijenti[i]].potrebnoJedinica<=zalAB){
                    zalAB=zalAB-pacijenti[ABpacijenti[i]].potrebnoJedinica;
                    pacijenti[ABpacijenti[i]].AB=pacijenti[ABpacijenti[i]].potrebnoJedinica;
                    pacijenti[ABpacijenti[i]].potrebnoJedinica=0;
                }else{
                    pacijenti[ABpacijenti[i]].potrebnoJedinica=pacijenti[ABpacijenti[i]].potrebnoJedinica-zalAB;
                    pacijenti[ABpacijenti[i]].AB=zalAB;
                    zalAB=0;
                    brZal++;
                }
            }
            else if(brZal==1){
                if(pacijenti[ABpacijenti[i]].potrebnoJedinica<=zalB){
                    zalB=zalB-pacijenti[ABpacijenti[i]].potrebnoJedinica;
                    pacijenti[ABpacijenti[i]].B=pacijenti[ABpacijenti[i]].potrebnoJedinica;
                    pacijenti[ABpacijenti[i]].potrebnoJedinica=0;
                }else{
                    pacijenti[ABpacijenti[i]].potrebnoJedinica=pacijenti[ABpacijenti[i]].potrebnoJedinica-zalB;
                    pacijenti[ABpacijenti[i]].B=zalB;
                    zalB=0;
                    brZal++;
                }
            }
            else if(brZal==2){
                if(pacijenti[ABpacijenti[i]].potrebnoJedinica<=zalA){
                    zalA=zalA-pacijenti[ABpacijenti[i]].potrebnoJedinica;
                    pacijenti[ABpacijenti[i]].A=pacijenti[ABpacijenti[i]].potrebnoJedinica;
                    pacijenti[ABpacijenti[i]].potrebnoJedinica=0;
                }else{
                    pacijenti[ABpacijenti[i]].potrebnoJedinica=pacijenti[ABpacijenti[i]].potrebnoJedinica-zalA;
                    pacijenti[ABpacijenti[i]].A=zalA;
                    zalA=0;
                    brZal++;
                }
            }
            else if(brZal==3){
                zalO=zalO-pacijenti[ABpacijenti[i]].potrebnoJedinica;
                pacijenti[ABpacijenti[i]].O=pacijenti[ABpacijenti[i]].potrebnoJedinica;
                pacijenti[ABpacijenti[i]].potrebnoJedinica=0;
            }
        }
        
    }
    
    cout<<"moguce"<<endl;
    for(int i=0; i<brojPacijenata; i++){
        cout<<pacijenti[i].O<<" "<<pacijenti[i].A<<" "<<pacijenti[i].B<<" "<<pacijenti[i].AB<<endl;
    }
    
}