#include <iostream>

using namespace std;

int main()
{
    int brojPacijenta, zalihaO, zalihaA, zalihaB, zalihaAB, ostaloO, ostaloA, ostaloB, ostaloAB;
    cin >> brojPacijenta;
    cin >> zalihaO >> zalihaA >> zalihaB >> zalihaAB;
    string krvnaGrupa[brojPacijenta];
    int potrebaPacijenta[brojPacijenta];
    int potrebnaO = 0, potrebnaA = 0, potrebnaB = 0, potrebnaAB = 0;
    int pacijenti [brojPacijenta][4]= {0};
    for (int i = 0; i < brojPacijenta; i++)
    {
        cin >> krvnaGrupa[i] >> potrebaPacijenta[i];
    }
    for (int i = 0; i < brojPacijenta; i++)
    {
        if (krvnaGrupa[i] == "O")
        {
            potrebnaO++;
        }
        if (krvnaGrupa[i] == "A")
        {
            potrebnaA++;
        }
        if (krvnaGrupa[i] == "B")
        {
            potrebnaB++;
        }
        if (krvnaGrupa[i] == "AB")
        {
            potrebnaAB++;
        }
    }
    ostaloO = zalihaO - potrebnaO;
    ostaloA = zalihaA - potrebnaA;
    ostaloB = zalihaB - potrebnaB;
    ostaloAB = zalihaAB - potrebnaAB;
    if (ostaloO < 0)
    {
        goto nemoguce;
    }
    else if (ostaloA < 0)
    {
        if (ostaloO + ostaloA < 0)
        {
            goto nemoguce;
        }
        else if (ostaloB < 0)
        {
            if (ostaloO + ostaloA + ostaloB < 0)
            {
                goto nemoguce;
            }
            else if (ostaloAB < 0)
            {
                if (ostaloO + ostaloA + ostaloB + ostaloAB < 0)
                {
                    goto nemoguce;
                }
                else
                {
                    goto program;
                }
            }
            else
            {
                goto program;
            }
        }
        else if (ostaloAB < 0)
        {
            if (ostaloO + ostaloA + ostaloB + ostaloAB < 0)
            {
                goto nemoguce;
            }
            else
            {
                goto program;
            }
        }
        else
        {
            goto program;
        }
    }
    else if (ostaloB < 0)
    {
        if (ostaloO + ostaloB < 0)
        {
            goto nemoguce;
        }
        else if (ostaloAB < 0)
        {
            if (ostaloO + ostaloA + ostaloB + ostaloAB < 0)
            {
                goto nemoguce;
            }
            else
            {
                goto program;
            }
        }
        else
        {
            goto program;
        }
    }
    else if (ostaloAB < 0)
    {
        if (ostaloO + ostaloA + ostaloB + ostaloAB < 0)
        {
            goto nemoguce;
        }
        else
        {
            goto program;
        }
    }

program:
    for(int i=0; i<brojPacijenta; i++)
    {
        if (krvnaGrupa[i] == "O")
        {
            if(zalihaO>=potrebaPacijenta[i])
            {
                pacijenti[i][0]=potrebaPacijenta[i];
                zalihaO-=potrebaPacijenta[i];
            }
        }
    }
    for(int i=0; i<brojPacijenta; i++)
    {
        if (krvnaGrupa[i] == "A")
        {
            if(zalihaA>=potrebaPacijenta[i])
            {
                pacijenti[i][1]=potrebaPacijenta[i];
                zalihaA-=potrebaPacijenta[i];
            }
            else
            {
                potrebaPacijenta[i]-=zalihaA;
                pacijenti[i][1]=zalihaA;
                zalihaA=0;
                pacijenti[i][0]=potrebaPacijenta[i];
                zalihaO-=potrebaPacijenta[i];
                potrebaPacijenta[i]=0;
            }
        }
        if (krvnaGrupa[i] == "B")
        {
            if(zalihaB>=potrebaPacijenta[i])
            {
                pacijenti[i][2]=potrebaPacijenta[i];
                zalihaB-=potrebaPacijenta[i];
            }
            else
            {
                potrebaPacijenta[i]-=zalihaB;
                pacijenti[i][2]=zalihaB;
                zalihaB=0;
                pacijenti[i][0]=potrebaPacijenta[i];
                zalihaO-=potrebaPacijenta[i];
                potrebaPacijenta[i]=0;
            }
        }
    }
    for(int i=0; i<brojPacijenta; i++)
    {

        if (krvnaGrupa[i] == "AB")
        {
            if(zalihaAB>=potrebaPacijenta[i])
            {
                pacijenti[i][3]=potrebaPacijenta[i];
                zalihaAB-=potrebaPacijenta[i];
            }
            else
            {
                potrebaPacijenta[i]-=zalihaAB;
                pacijenti[i][3]=zalihaAB;
                zalihaAB=0;
                if(zalihaA>0)
                {
                    if(zalihaA>=potrebaPacijenta[i])
                    {
                        pacijenti[i][1]=potrebaPacijenta[i];
                        zalihaA-=potrebaPacijenta[i];
                    }
                    else
                    {
                        potrebaPacijenta[i]-=zalihaA;
                        pacijenti[i][1]=zalihaA;
                        zalihaA=0;
                    }
                }
                if(zalihaB>0)
                {
                    if(zalihaB>=potrebaPacijenta[i])
                    {
                        pacijenti[i][2]=potrebaPacijenta[i];
                        zalihaB-=potrebaPacijenta[i];
                    }
                    else
                    {
                        potrebaPacijenta[i]-=zalihaB;
                        pacijenti[i][2]=zalihaB;
                        zalihaB=0;
                        pacijenti[i][0]=potrebaPacijenta[i];
                        zalihaO-=potrebaPacijenta[i];
                        potrebaPacijenta[i]=0;
                    }
                }
            }
        }
    }
    cout<<"moguce"<<endl;
    for(int i=0; i<brojPacijenta; i++)
    {
        for(int j=0; j<4; j++)
        {
            cout<<pacijenti[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
nemoguce:
    cout<<"nemoguce";
}