#include <bits/stdc++.h>

using namespace std;

int main()
{
    vector<pair<string, long> > pac;

    pair<string, long> gr;

    long o, a, b, ab, n, jd, op=0l, ap=0l, bp=0l, abp=0l, otr, atr, btr, abtr;

    cin>>n>>o>>a>>b>>ab;

    for(long i=0l; i<n; i++)
    {
        cin>>gr.first>>gr.second;
        pac.push_back(gr);
    }

    for(long i=0l; i<n; i++)
    {
        if(pac[i].first=="O")
            op++;
        else if(pac[i].first=="A")
            ap++;
        else if(pac[i].first=="B")
            bp++;
        else if(pac[i].first=="AB")
            abp++;
    }

    if(op>o || ap>(a+(o-op)) || bp>((o-op-(ap-a))<0l?0l:(o-op-(a-ap))) || abp>(ab+o+a+b-op-ap-bp))
        cout<<"nemoguce";
    else
    {
        cout<<"moguce\n";

        for(long i=0l; i<n; i++)
        {
            abtr=atr=btr=otr=0;

            if(pac[i].first=="O")
             {
                o=0l-pac[i].second;
                atr=btr=abtr=0l;
                otr=pac[i].second;
             }
            if(pac[i].first=="A")
            {
                if(a==0l)
                {
                    otr=pac[i].second;
                    o=o-pac[i].second;
                    atr=btr=abtr=0l;
                }
                else if(a<pac[i].second)
                {
                    atr=a;
                    otr=pac[i].second-a;
                    a=0l;
                    o=o-otr;
                }
                else
                {
                    atr=pac[i].second;
                    a=a-atr;
                    otr=btr=abtr=0l;
                }
            }
            if(pac[i].first=="B")
            {
                if(b==0l)
                {
                    otr=pac[i].second;
                    o=o-pac[i].second;
                    atr=btr=abtr=0;l
                }
                else if(b<pac[i].second)
                {
                    btr=b;
                    otr=pac[i].second-b;
                    b=0l;
                    o=o-otr;
                }
                else
                {
                    btr=pac[i].second;
                    b=b-btr;
                    otr=atr=abtr=0l;
                }
            }
            if(pac[i].first=="AB")
            {

                if(ab<pac[i].second)
                {
                    pac[i].second-=ab;
                    abtr=ab;
                    ab=0l;

                    if(o<pac[i].second)
                    {
                        otr=o;
                        pac[i].second=pac[i].second-o;
                        o=0l;

                        if(a<pac[i].second)
                        {
                            atr=a;
                            pac[i].second=pac[i].second-a;
                            a=0l;

                            if(b<pac[i].second)
                            {
                                btr=b;
                                pac[i].second=pac[i].second-b;
                                b=0l;
                            }
                            else
                            {
                                b=b-pac[i].second;
                                btr=pac[i].second;
                            }
                        }
                        else
                        {
                            a=a-pac[i].second;
                            atr=pac[i].second;
                        }
                    }
                    else
                    {
                        o=o-pac[i].second;
                        otr=pac[i].second;
                    }


                }

                else
                {
                    abtr=pac[i].second;
                    btr=atr=otr=0l;
                }
            }

            cout<<otr<<' '<<atr<<' '<<btr<<' '<<abtr<<'\n';
        }
    }
    return 0;
}