#include <bits/stdc++.h>

using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    int n, broj_jedinica;
    string krvna_grupa;
    map<string,int> Zalihe;
    vector<pair<string,int>> Pacijenti;
    cin>>n;
    cin>>Zalihe["O"]>>Zalihe["A"]>>Zalihe["B"]>>Zalihe["AB"];
    int ans[n][4];
    for(int i=0; i<n; i++)
    {
        cin>>krvna_grupa;
        cin>>broj_jedinica;
        Pacijenti.push_back({krvna_grupa,broj_jedinica});
        for(int j =0; j<4; j++)ans[i][j]=0;
    }

    for(int i = 0; i<n; i++)
    {
        if(Pacijenti[i].first=="O")
        {
            if(Zalihe["O"]<Pacijenti[i].second)
            {
                cout<<"nemoguce1";
                return 0;
            }
            else
            {
                ans[i][0]=Pacijenti[i].second;
                Zalihe["O"]-=Pacijenti[i].second;
            }
        }
    }

    for(int i = 0; i<n; i++)
    {
        if(Pacijenti[i].first=="A")
        {
            if(Zalihe["A"] + Zalihe["O"]<Pacijenti[i].second)
            {
                cout<<"nemoguce2";
                return 0;
            }
            else
            {
                if(Zalihe["A"]>= Pacijenti[i].second)
                {
                    ans[i][1]=Pacijenti[i].second;
                    Zalihe["A"]-=Pacijenti[i].second;
                }
                else
                {
                    ans[i][1]=Zalihe["A"];
                    ans[i][0]=Pacijenti[i].second-Zalihe["A"];
                    Zalihe["O"]=Pacijenti[i].second-Zalihe["A"];
                    Zalihe["A"]=0;
                }
            }
        }
    }

    for(int i = 0; i<n; i++)
    {
        if(Pacijenti[i].first=="B")
        {
            if(Zalihe["B"] + Zalihe["O"]<Pacijenti[i].second)
            {
                cout<<"nemoguce3";
                return 0;
            }
            else
            {
                if(Zalihe["B"]>= Pacijenti[i].second)
                {
                    ans[i][2]=Pacijenti[i].second;
                    Zalihe["B"]-=Pacijenti[i].second;
                }
                else
                {
                    ans[i][2]=Zalihe["B"];
                    ans[i][0]=Pacijenti[i].second-Zalihe["B"];
                    Zalihe["O"]=Pacijenti[i].second-Zalihe["B"];
                    Zalihe["B"]=0;
                }
            }
        }
    }

    for(int i = 0; i<n; i++)
    {
        if(Pacijenti[i].first=="AB")
        {
            if(Zalihe["A"] + Zalihe["B"] + Zalihe["O"] + Zalihe["AB"]<Pacijenti[i].second)
            {
                cout<<"nemoguce4";
                return 0;
            }
            if(Pacijenti[i].second!=0 && Zalihe["AB"]!=0)
            {
                if(Pacijenti[i].second<Zalihe["AB"])
                {
                    ans[i][3]=Pacijenti[i].second;
                    Zalihe["AB"]-=Pacijenti[i].second;
                }
                else
                {
                    ans[i][3]=Zalihe["AB"];
                    Pacijenti[i].second-=Zalihe["AB"];
                    Zalihe["AB"]=0;
                }
            }
            if(Pacijenti[i].second!=0 && Zalihe["B"]!=0)
            {
                if(Pacijenti[i].second<Zalihe["B"])
                {
                    ans[i][2]=Pacijenti[i].second;
                    Zalihe["B"]-=Pacijenti[i].second;
                }
                else
                {
                    ans[i][2]=Zalihe["B"];
                    Pacijenti[i].second-=Zalihe["B"];
                    Zalihe["B"]=0;
                }
            }
            if(Pacijenti[i].second!=0 && Zalihe["A"]!=0)
            {
                if(Pacijenti[i].second<Zalihe["A"])
                {
                    ans[i][1]=Pacijenti[i].second;
                    Zalihe["A"]-=Pacijenti[i].second;
                }
                else
                {
                    ans[i][1]=Zalihe["A"];
                    Pacijenti[i].second-=Zalihe["A"];
                    Zalihe["A"]=0;
                }
            }
            if(Pacijenti[i].second!=0 && Zalihe["O"]!=0)
            {
                if(Pacijenti[i].second<Zalihe["O"])
                {
                    ans[i][0]=Pacijenti[i].second;
                    Zalihe["O"]-=Pacijenti[i].second;
                }
                else
                {
                    ans[i][0]=Zalihe["O"];
                    Pacijenti[i].second-=Zalihe["O"];
                    Zalihe["O"]=0;
                }
            }
        }
    }

    cout<<"moguce"<<endl;
    for(int i = 0; i<n; i++)
    {
        for(int j =0;j<4;j++)
        {
            cout<<ans[i][j]<<" ";
        }
        cout<<endl;
    }

    return 0;
}