#include <stdio.h>
#include <stdlib.h>
#include <string>
using namespace std;

struct Pacijent{
    string grupa;
    int potreba;
    int grupaO;
    int grupaA;
    int grupaB;
    int grupaAB;
};

int main()
{
    int n,O,A,B,AB;
    scanf("%d", &n);
    scanf("%d", &O);
    scanf("%d", &A);
    scanf("%d", &B);
    scanf("%d", &AB);

    Pacijent pacijenti[n];

    int i;
    for(i=0;i<n;i++)
    {
        scanf("%s",&pacijenti[i].grupa);
        scanf("%d",&pacijenti[i].potreba);
    }

//kraj unosa


    for(i=0;i<n;i++)
    {
        //nulta grupa
        if(pacijenti[i].grupa=="O")
        {
            O=O-pacijenti[i].potreba;
            pacijenti[i].grupaO=pacijenti[i].potreba;
            pacijenti[i].grupaA=0;
            pacijenti[i].grupaB=0;
            pacijenti[i].grupaAB=0;

        }
        //A grupa

        if(pacijenti[i].grupa=="A")
        {
            if(A>=pacijenti[i].potreba)
            {
                A=A-pacijenti[i].potreba;
                pacijenti[i].grupaO=0;
                pacijenti[i].grupaA=pacijenti[i].potreba;
                pacijenti[i].grupaB=0;
                pacijenti[i].grupaAB=0;
            }
            else{
            pacijenti[i].potreba=pacijenti[i].potreba - A;
            pacijenti[i].grupaA=A;
            A=0;
            O=O-pacijenti[i].potreba;
            pacijenti[i].grupaO=pacijenti[i].potreba;

            pacijenti[i].grupaB=0;
            pacijenti[i].grupaAB=0;
            }
        }

        //B grupa
        if(pacijenti[i].grupa=="B")
        {
            if(B>=pacijenti[i].potreba)
            {
                B=B-pacijenti[i].potreba;
                pacijenti[i].grupaO=0;
                pacijenti[i].grupaB=pacijenti[i].potreba;
                pacijenti[i].grupaA=0;
                pacijenti[i].grupaAB=0;
            }
            else{
            pacijenti[i].potreba=pacijenti[i].potreba - B;
            pacijenti[i].grupaB=B;
            B=0;
            O=O-pacijenti[i].potreba;
            pacijenti[i].grupaO=pacijenti[i].potreba;

            pacijenti[i].grupaA=0;
            pacijenti[i].grupaAB=0;
            }
        }

        //grupa AB

        if(pacijenti[i].grupa=="AB")
        {
                {
                    if(AB>=pacijenti[i].potreba)
                    {
                        AB=AB-pacijenti[i].potreba;
                        pacijenti[i].grupaO=0;
                        pacijenti[i].grupaA=0;
                        pacijenti[i].grupaB=0;
                        pacijenti[i].grupaAB=pacijenti[i].potreba;
                    }
                    else{
                            pacijenti[i].potreba=pacijenti[i].potreba - AB;
                            pacijenti[i].grupaAB=AB;
                            AB=0;

                            if(A>=pacijenti[i].potreba)
                            {

                                A=A-pacijenti[i].potreba;
                                pacijenti[i].grupaO=0;
                                pacijenti[i].grupaA=pacijenti[i].potreba;
                                pacijenti[i].grupaB=0;
                            }
                            else{
                                    pacijenti[i].potreba=pacijenti[i].potreba - A;
                                    pacijenti[i].grupaA=A;
                                    A=0;
                                    if(B>=pacijenti[i].potreba){
                                        B=B-pacijenti[i].potreba;
                                        pacijenti[i].grupaB=pacijenti[i].potreba;
                                        pacijenti[i].grupaO=0;
                                    }
                                    else{
                                        pacijenti[i].potreba=pacijenti[i].potreba - B;
                                        pacijenti[i].grupaB=B;
                                        B=0;
                                        O=O-pacijenti[i].potreba;
                                        pacijenti[i].grupaO=pacijenti[i].potreba;
                                    }



                            }
                    }
                }
        }

        //uslov za gresku
        if(O<0)
        {
            printf("nemoguce");
            return 0;
        }
        if(A<0)
        {
            printf("nemoguce");
            return 0;
        }
        if(B<0)
        {
            printf("nemoguce");
            return 0;
        }
        if(AB<0)
        {
            printf("nemoguce");
            return 0;
        }

    }
    // kraj fora

    printf("moguce\n");

    for(i=0;i<n;i++)
    {
        printf("%d ", pacijenti[i].grupaO);
        printf("%d ", pacijenti[i].grupaA);
        printf("%d ", pacijenti[i].grupaB);
        printf("%d\n", pacijenti[i].grupaAB);
    }


    return 0;
}