#include <iostream>

using namespace std;

struct pacijent
{
    string krvna_grupa;
    int broj_jedinica;
    int o1 = 0, a1 = 0, b1 = 0, ab1 = 0;
};

int main()
{
    bool moguce = true;
    int n, zbir_svih_jedinica = 0, zbir_potrebnih_ab = 0;
    cin >> n;
    int o, a, b, ab, zbir_prvobitne_zalihe = 0, br_ab = 0;
    pacijent *pacijenti[n];
    cin >> o >> a >> b >> ab;
    zbir_prvobitne_zalihe = o + a + b + ab;
    for (int i = 0; i < n; i++)
    {
        pacijent *p = new pacijent;
        pacijenti[i] = p;
        cin >> (pacijenti[i])->krvna_grupa;
        cin >> (pacijenti[i])->broj_jedinica;
        zbir_svih_jedinica += pacijenti[i]->broj_jedinica;
        if (pacijenti[i]->krvna_grupa == "O")
        {
            if (o >= pacijenti[i]->broj_jedinica)
            {
                o -= pacijenti[i]->broj_jedinica;
                pacijenti[i]->o1 = pacijenti[i]->broj_jedinica;
            }
            else
                moguce = false;
        }
        else if (pacijenti[i]->krvna_grupa == "A")
        {
            if (a >= pacijenti[i]->broj_jedinica)
            {
                a -= pacijenti[i]->broj_jedinica;
                pacijenti[i]->a1 = pacijenti[i]->broj_jedinica;
            }
            else
            {
                pacijenti[i]->broj_jedinica -= a;
                pacijenti[i]->a1 = a;
                a = 0;
                if (o >= pacijenti[i]->broj_jedinica)
                {
                    o -= pacijenti[i]->broj_jedinica;
                    pacijenti[i]->o1 = pacijenti[i]->broj_jedinica;
                }
                else
                {
                    moguce = false;
                }
            }
        }
        else if (pacijenti[i]->krvna_grupa == "B")
        {
            if (b >= pacijenti[i]->broj_jedinica)
            {
                b -= pacijenti[i]->broj_jedinica;
                pacijenti[i]->b1 = pacijenti[i]->broj_jedinica;
            }
            else
            {
                pacijenti[i]->broj_jedinica -= b;
                pacijenti[i]->b1 = b;
                b = 0;
                if (o >= pacijenti[i]->broj_jedinica)
                {
                    o -= pacijenti[i]->broj_jedinica;
                    pacijenti[i]->o1 = pacijenti[i]->broj_jedinica;
                }
                else
                {
                    moguce = false;
                }
            }
        }
        else
        {
            zbir_potrebnih_ab += pacijenti[i]->broj_jedinica;
            br_ab ++;
        }
    }
    if (br_ab != 0 && o + a + b + ab >= zbir_potrebnih_ab)
    {
        for (int i = 0; i < n; i++)
        {
            if (pacijenti[i]->krvna_grupa == "AB")
            {
                if (o >= pacijenti[i]->broj_jedinica && pacijenti[i]->broj_jedinica != 0)
                {
                    o -= pacijenti[i]->broj_jedinica;
                    pacijenti[i]->o1 = pacijenti[i]->broj_jedinica;
                    pacijenti[i]->broj_jedinica = 0;
                }
                else if (pacijenti[i]->broj_jedinica != 0)
                {
                    pacijenti[i]->o1 = o;
                    pacijenti[i]->broj_jedinica -= o;
                    o = 0;
                }

                if (a >= pacijenti[i]->broj_jedinica && pacijenti[i]->broj_jedinica != 0)
                {
                    a -= pacijenti[i]->broj_jedinica;
                    pacijenti[i]->a1 = pacijenti[i]->broj_jedinica;
                    pacijenti[i]->broj_jedinica = 0;
                }
                else if (pacijenti[i]->broj_jedinica != 0)
                {
                    pacijenti[i]->a1 = a;
                    pacijenti[i]->broj_jedinica -= a;
                    a = 0;
                }

                if (b >= pacijenti[i]->broj_jedinica && pacijenti[i]->broj_jedinica != 0)
                {
                    b -= pacijenti[i]->broj_jedinica;
                    pacijenti[i]->b1 = pacijenti[i]->broj_jedinica;
                    pacijenti[i]->broj_jedinica = 0;
                }
                else if (pacijenti[i]->broj_jedinica != 0)
                {
                    pacijenti[i]->b1 = b;
                    pacijenti[i]->broj_jedinica -= b;
                    b = 0;
                }

                if (ab >= pacijenti[i]->broj_jedinica && pacijenti[i]->broj_jedinica != 0)
                {
                    ab -= pacijenti[i]->broj_jedinica;
                    pacijenti[i]->ab1 = pacijenti[i]->broj_jedinica;
                    pacijenti[i]->broj_jedinica = 0;
                }
                else if (pacijenti[i]->broj_jedinica != 0)
                {
                    pacijenti[i]->ab1 = ab;
                    pacijenti[i]->broj_jedinica -= ab;
                    ab = 0;
                }

                if (pacijenti[i]->broj_jedinica != 0)
                {
                    moguce = false;
                }
            }
        }
    }
    if (zbir_svih_jedinica > zbir_prvobitne_zalihe || !moguce)
    {
        cout << "nemoguce";
    }
    else
    {
        cout << "moguce"<< endl;
        for (int i = 0; i < n; i++)
        {
            cout << pacijenti[i]->o1 << " " << pacijenti[i]->a1 << " " << pacijenti[i]->b1 << " " << pacijenti[i]->ab1 << endl;
        }
    }
    return 0;
}