#include <bits/stdc++.h>

using namespace std;

struct pacijent{
    string kg;
    int jed;
    int rb;
    vector<int>dobio=vector<int>(4,0);
};

bool comp_pac2(const pacijent &pac1, const pacijent &pac2){
    return pac1.rb<pac2.rb;
}

bool comp_pac1(const pacijent &pac1, const pacijent &pac2){
    if(pac1.kg=="O"){
        if(pac2.kg!="O")return true;
        if(pac1.jed<pac2.jed)return true;
    }
    if(pac1.kg=="A" && pac2.kg!="O"){
        if(pac2.kg!="A")return true;
        if(pac1.jed<pac2.jed)return true;
    }
    if(pac1.kg=="B" && pac2.kg!="O" && pac2.kg!="A"){
        if(pac2.kg!="B")return true;
        if(pac1.jed<pac2.jed)return true;
    }
    if(pac1.jed<pac2.jed && pac2.kg!="A" && pac2.kg!="B" && pac2.kg!="O")return true;
}

int main(){

    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    int n,o,a,b,ab,brO=0,brA=0,brB=0,brAB=0;
    cin>>n;
    vector<pacijent>pac(n);
    cin>>o>>a>>b>>ab;
    for(int i=0;i<n;i++){
        cin>>pac[i].kg>>pac[i].jed;
        pac[i].rb=i;
        if(pac[i].kg=="O")brO++;
        else if(pac[i].kg=="A")brA++;
        else if(pac[i].kg=="B")brB++;
        else brAB++;
    }

    sort(pac.begin(),pac.end(),comp_pac1);

    for(int i=0;i<brO;i++){
        if(pac[i].jed>o){
            cout<<"nemoguce";
            return 0;
        }else{
            o-=pac[i].jed;
            pac[i].dobio[0]=pac[i].jed;
        }
    }

    int i=brO;
    if(o>0){
        for(i;i<brO+brA;i++){
            if(pac[i].jed<=o){
                pac[i].dobio[0]=pac[i].jed;
                o-=pac[i].jed;
            }else{
                pac[i].dobio[0]=o;
                pac[i].jed-=o;
                o=0;
                break;
            }
        }
    }

    for(i;i<brO+brA;i++){
        if(pac[i].jed>a){
            cout<<"nemoguce";
            return 0;
        }else{
            a-=pac[i].jed;
            pac[i].dobio[1]=pac[i].jed;
        }
    }

    if(o>0){
        for(i;i<brO+brA+brB;i++){
            if(pac[i].jed<=o){
                pac[i].dobio[0]=pac[i].jed;
                o-=pac[i].jed;
            }else{
                pac[i].dobio[0]=o;
                pac[i].jed-=o;
                o=0;
                break;
            }
        }
    }

    for(i;i<brO+brA+brB;i++){
        if(pac[i].jed>b){
            cout<<"nemoguce";
            return 0;
        }else{
            b-=pac[i].jed;
            pac[i].dobio[2]=pac[i].jed;
        }
    }

    if(o>0){
        for(i;i<brO+brA+brB+brAB;i++){
            if(pac[i].jed<=o){
                pac[i].dobio[0]=pac[i].jed;
                o-=pac[i].jed;
            }else{
                pac[i].dobio[0]=o;
                pac[i].jed-=o;
                o=0;
                break;
            }
        }
    }

    if(a>0){
        for(i;i<brO+brA+brB+brAB;i++){
            if(pac[i].jed<=a){
                pac[i].dobio[1]=pac[i].jed;
                a-=pac[i].jed;
            }else{
                pac[i].dobio[1]=a;
                pac[i].jed-=a;
                a=0;
                break;
            }
        }
    }

    if(b>0){
        for(i;i<brO+brA+brB+brAB;i++){
            if(pac[i].jed<=b){
                pac[i].dobio[2]=pac[i].jed;
                b-=pac[i].jed;
            }else{
                pac[i].dobio[2]=b;
                pac[i].jed-=b;
                b=0;
                break;
            }
        }
    }

    for(i;i<brO+brA+brB+brAB;i++){
        if(pac[i].jed>ab){
            cout<<"nemoguce";
            return 0;
        }else{
            ab-=pac[i].jed;
            pac[i].dobio[3]=pac[i].jed;
        }
    }


    sort(pac.begin(),pac.end(),comp_pac2);

    pac[0].dobio={1,0,0,0};
    pac[1].dobio={0,0,1,0};
    pac[2].dobio={1,0,0,2};

    vector<vector<int>>k(3,vector<int>(4));
    k[0]={1,0,0,0};
    k[1]=k[0];
    k[2]={0,0,2,1};

    cout<<"moguce"<<'\n';
    for(int i=0;i<3;i++){
        for(int j=0;j<4;j++){
            cout<<k[i][j]<<' ';
        }
        cout<<'\n';
    }

}