#include <iostream>

using namespace std;
struct pacijent{
    string krvna_grupa;
    int br_jedinica;
    int O;
    int A;
    int B;
    int AB;
};
bool nulta(int *o, int *br_jedinica, int *O){
    if(*br_jedinica>*o){
        cout<<"nemoguce";
        return false;
    }
    else{
        *o=*o-*br_jedinica;
        *O+=*br_jedinica;
        return true;
    }
}
int main()
{
    int n,o,a,b,ab;
    cin>>n>>o>>a>>b>>ab;
    pacijent niz[n];
    for(int i=0;i<n;i++){
        cin>>niz[i].krvna_grupa>>niz[i].br_jedinica;
        niz[i].O=0;
        niz[i].A=0;
        niz[i].B=0;
        niz[i].AB=0;
        if(niz[i].krvna_grupa=="O"){
            bool x=nulta(&o,&niz[i].br_jedinica,&niz[i].O);
            if(x==false){
                return 0;
            }
        }
    }
    for(int i=0;i<n;i++){
        if(niz[i].krvna_grupa=="A"){
            if(niz[i].br_jedinica>a){
                niz[i].br_jedinica-=a;
                niz[i].A+=a;
                a=0;
                bool x=nulta(&o,&niz[i].br_jedinica,&niz[i].O);
                if(x==false){
                    return 0;
                }
            }
            else{
                niz[i].A+=niz[i].br_jedinica;
                a=a-niz[i].br_jedinica;
            }
        }
        else{
            if(niz[i].krvna_grupa=="B"){
                if(niz[i].br_jedinica>b){
                    niz[i].br_jedinica-=b;
                    niz[i].B+=b;
                    b=0;
                    bool x=nulta(&o,&niz[i].br_jedinica,&niz[i].O);
                    if(x==false){
                        return 0;
                    }
                }
                else{
                    niz[i].B+=niz[i].br_jedinica;
                    b=b-niz[i].br_jedinica;
                }
            }
        }
    }
    for(int i=0;i<n;i++){
        if(niz[i].krvna_grupa=="AB"){
            if(niz[i].br_jedinica>ab){
                niz[i].br_jedinica-=ab;
                niz[i].AB+=ab;
                ab=0;
                if(niz[i].br_jedinica>b){
                    niz[i].br_jedinica-=b;
                    niz[i].B+=b;
                    b=0;
                    if(niz[i].br_jedinica>a){
                        niz[i].br_jedinica-=a;
                        niz[i].A+=a;
                        a=0;
                        bool x=nulta(&o,&niz[i].br_jedinica,&niz[i].O);
                        if(x==false){
                            return 0;
                        }
                    }
                    else{
                        niz[i].A+=niz[i].br_jedinica;
                        a=a-niz[i].br_jedinica;
                    }
                }
                else{
                    niz[i].B+=niz[i].br_jedinica;
                    b=b-niz[i].br_jedinica;
                }
            }
            else{
                niz[i].AB+=niz[i].br_jedinica;
                ab=ab-niz[i].br_jedinica;
            }
        }
    }
    cout<<"moguce"<<endl;
    for(int i=0;i<n;i++){
        cout<<niz[i].O<<" "<<niz[i].A<<" "<<niz[i].B<<" "<<niz[i].AB<<endl;
    }
    return 0;
}