#include<bits/stdc++.h>
using namespace std;

string krv[10005];
int brojkrvi[1000005];

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    int n,o,a,b,ab;
    cin >> n;
    cin >> o >> a >> b >> ab;
    int zbira = 0;
    int zbirb = 0;
    int zbiro = 0;
    int zbirab = 0;
    for(int i = 0; i < n; i++)
    {
        cin >> krv[i] >> brojkrvi[i];
        if(krv[i] == "A")
        zbira += brojkrvi[i];
        else if(krv[i] == "B")
        zbirb += brojkrvi[i];
        else if(krv[i] == "O")
        zbiro += brojkrvi[i];
        else if(krv[i] == "AB")
        zbirab += brojkrvi[i];
    }
    bool moze = true;   
    if(zbiro > o)
    moze = false;
    else
    {
        if(b - zbirb >= 0)
        {
            if(zbira > (a + (o - zbiro)))
            moze = false;
        }
        else
        {
            if(zbira > (a + (o - zbiro - abs(b - zbirb))))
            moze = false;
        }

        if(a - zbira >= 0)
        {
            if(zbirb > (b + (o - zbiro)))
            moze = false;
        }
        else
        {
            if(zbirb > (a + (o - zbiro - abs(a - zbira))))
            moze = false;
        }
        
        if((b - zbirb >= 0) && (a - zbira >= 0))
        {
            if(zbirab > (ab + (o - zbiro) + (b - zbirb) + (a - zbira)))
            moze = false;
        }
        else if((b - zbirb >= 0) && (a - zbira < 0))
        {
            if(zbirab > (ab + (o - zbiro) + (b - zbirb)))
            moze = false;
        }
        else if((b - zbirb < 0) && (a - zbira >= 0))
        {
            if(zbirab > (ab + (o - zbiro) + (a - zbira)))
            moze = false;
        }
        else
        {
            if(zbirab > (ab + (o - zbiro - (zbira - a) - (zbirb - b))))
            moze = false;
        }
    }
    if(!moze)
    cout << "nemoguce" << endl;
    else
    {
        cout << "moguce" << endl;
        for(int i = 0; i < n; i++)
        {
            if(krv[i] == "O")
            {
                cout << brojkrvi[i] << " " << 0 << " " << 0 << " " << 0 << endl;;
                o -= brojkrvi[i];
            }
            else if(krv[i] == "A")
            {
                if(a >= brojkrvi[i])
                {
                    cout << 0 << " " << brojkrvi[i] << " " << 0 << " " << 0 << endl;
                    a -= brojkrvi[i];
                    zbira -= brojkrvi[i];
                }
                else
                {
                    cout << brojkrvi[i] - a << " " << a << " " << 0 << " " << 0 << endl;
                    o -= (brojkrvi[i] - a);
                    a = 0;
                    zbira -= a;
                    zbiro -= (brojkrvi[i] - a);
                }
            }
            else if(krv[i] == "B")
            {
                if(b >= brojkrvi[i])
                {
                    cout << 0 << " " << 0 << " " << brojkrvi[i] << " " << 0 << endl;
                    b -= brojkrvi[i];
                    zbirb -= brojkrvi[i];
                }
                else
                {
                    cout << brojkrvi[i] - b << " " << 0 << " " << b << " " << 0 << endl;
                    o -= (brojkrvi[i] - b);
                    b = 0;
                    zbiro -= (brojkrvi[i] - b);
                    zbirb -= b;
                }
            }
            else if(krv[i] == "AB")
            {
                if(ab >= brojkrvi[i])
                {
                    cout << 0 << " " << 0 << " " << 0 << " " << brojkrvi[i] << endl;
                    ab -= brojkrvi[i];  
                }
                else if(o - zbiro == max(max(a - zbira, b - zbirb), o - zbiro))
                {
                    cout << brojkrvi[i] - ab << " " << 0 << " " << 0 << " " << ab << endl;
                    o -= (brojkrvi[i] - ab);
                    ab = 0;
                    zbiro -= (brojkrvi[i] - ab);
                }
                else if(a - zbira == max(max(a - zbira, b - zbirb), o - zbiro))
                {
                    if(ab + a >= brojkrvi[i])
                    {
                       cout << 0 << " " << brojkrvi[i] - ab << " " << 0 << " " << ab << endl;
                       a -= (brojkrvi[i] - ab);
                       ab = 0;
                       zbira -= (brojkrvi[i] - ab);
                    }
                    else
                    {
                        if(ab + a + b < brojkrvi[i])
                        {
                            cout << brojkrvi[i] - (ab + a + b) << " " << a << " " << b << " " << ab << endl;
                            o -= brojkrvi[i] - (ab + a + b);
                            a = 0;
                            ab = 0;
                            b = 0;
                            zbiro -= brojkrvi[i] - (ab + a + b);
                            zbira -= a;
                            zbirb -= b;
                        }
                        else
                        {
                            cout << 0 << " " << a << " " << (ab + a + b) - brojkrvi[i] << " " << ab << endl; 
                            b -= (ab + a + b);
                            a = 0;
                            ab = 0;
                            zbirb -= (ab + a + b);
                            zbira -= a;
                        }
                    }
                }
                else
                {
                    if(ab + b >= brojkrvi[i])
                    {
                       cout << 0 << " " << 0 << " " << brojkrvi[i] - ab << " " << ab << endl;  
                       b -= (brojkrvi[i] - ab); 
                       ab = 0; 
                       zbirb -= (brojkrvi[i] - ab); 
                    }
                    else
                    {
                        if(ab + a + b < brojkrvi[i])
                        {
                            cout << brojkrvi[i] - (ab + a + b) << " " << a << " " << b << " " << ab << endl;
                            o -= (brojkrvi[i] - (ab + a + b));
                            a = 0;
                            ab = 0;
                            b = 0;
                            zbiro -= (brojkrvi[i] - (ab + a + b));
                            zbira -= a;
                            zbirb -= b;
                        }
                        else
                        {
                            cout << 0 << " " << brojkrvi[i] - (ab + b) << " " << b << " " << ab << endl; 
                            a -= (ab + a);
                            b = 0;
                            ab = 0;
                            zbira -= (ab + a);
                            zbirb -= b;
                        }
                    }
                }
            }
        }
    }
    return 0;
}