#include <iostream>
#include <vector>
#include <string>

using namespace std;

typedef struct
{
    int o = 0, a = 0, b = 0, ab = 0, kolicina;
    char type;
}pacijent;

int main()
{
    int n, o, a, b, ab, l;
    string k;
    bool j = false;

    cin >> n >> o >> a >> b >> ab;
    pacijent p[n];

    for(int i = 0; i < n; i++)
    {
        cin >> k >> l;
        if(k == "AB")
        {
            p[i].type = 'C';
            p[i].kolicina = l;
        }
        if(k == "O")
        {
            o-= l;
            p[i].o = l;
            p[i].type = 'O';
            p[i].kolicina = 0;
        }
        if(k == "A")
        {
            p[i].type = 'A';
            p[i].kolicina = l;
        }
        if(k == "B")
        {
            p[i].type = 'B';
            p[i].kolicina = l;
        }
    }
    //Raspodeljivanje svako svoj tip
    for(int i = 0; i < n; i++)
    {
        if(p[i].type == 'A')
        {
            if(a >= p[i].kolicina)
            {
                p[i].a = p[i].kolicina;
                a-= p[i].kolicina;
                p[i].kolicina = 0;
            }
            else
            {
                p[i].a = a;
                p[i].kolicina-= a;
                a = 0;
            }
        }
        if(p[i].type == 'C')
        {
            if(ab >= p[i].kolicina)
            {
                p[i].ab = p[i].kolicina;
                ab-= p[i].kolicina;
                p[i].kolicina = 0;
            }
            else
            {
                p[i].ab = ab;
                p[i].kolicina-= ab;
                ab = 0;
            }
        }
        if(p[i].type == 'B')
        {
            if(b >= p[i].kolicina)
            {
                p[i].b = p[i].kolicina;
                b-= p[i].kolicina;
                p[i].kolicina = 0;
            }
            else
            {
                p[i].b = b;
                p[i].kolicina-= b;
                b = 0;
            }
        }
    }
    //"Popunjavanje praznih mesta"
    for(int i = 0; i < n; i++)
    {
        if(p[i].kolicina != 0)
        {
            if((p[i].type = 'A') || (p[i].type == 'B'))
            {
                p[i].o = p[i].kolicina;
                o-= p[i].kolicina;
                p[i].kolicina = 0;
            }
        }
    }
    for(int i = 0; i < n; i++)
    {
        if(p[i].kolicina != 0 && p[i].type == 'C')
        {
            if(b >= p[i].kolicina)
            {
                p[i].b = p[i].kolicina;
                b-= p[i].kolicina;
                p[i].kolicina = 0;
            }
            else
            {
                p[i].b = b;
                p[i].kolicina-= b;
                b = 0;
            }

            if(a >= p[i].kolicina)
            {
                p[i].a = p[i].kolicina;
                a-= p[i].kolicina;
                p[i].kolicina = 0;
            }
            else
            {
                p[i].a = a;
                p[i].kolicina-= a;
                a = 0;
            }

            if(o >= p[i].kolicina)
            {
                p[i].o = p[i].kolicina;
                o-= p[i].kolicina;
                p[i].kolicina = 0;
            }
            else
            {
                p[i].o = o;
                p[i].kolicina-= o;
                o = 0;
            }
            if(p[i].kolicina != 0)
                j = true;
        }
    }

    if(j || o < 0)
        cout << "nemoguce" << endl;
    else
    {
        cout << "moguce" << endl;
        for(int i = 0; i < n; i++)
        {
            //o a b ab
            cout << p[i].o << " " << p[i].a << " " << p[i].b << " " << p[i].ab << endl;
        }
    }

    return 0;
}