using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        public struct Pacijent
        {
            public string grupa;
            public int jedinica;
            public int O;
            public int A;
            public int B;
            public int AB;
        }
        static void Ispunjavanje_Pacijenata(Pacijent[] Pacijenti, int N)
        {
            string[] grjed;
            for (int F = 0; F < N; F++)
            {
                grjed = Console.ReadLine().Split(' ');
                Pacijenti[F].grupa = grjed[0];
                Pacijenti[F].jedinica = int.Parse(grjed[1]);
            }
        }
        static bool Default_checker(int BolO, int BolA, int BolB, int BolAB, Pacijent[] Pacijenti, int N)
        {
            int BolU = BolO + BolA + BolB + BolAB;
            int PacU = 0;
            int PacO = 0;
            for (int i = 0; i < N; i++)
            {
                PacU += Pacijenti[i].jedinica;
                if (Pacijenti[i].grupa == "O")
                {
                    PacO += Pacijenti[i].jedinica;
                }
            }
            if (PacU <= BolU && BolO >= PacO)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        static bool dodela_krvi(int BolO, int BolA, int BolB, int BolAB, Pacijent[] Pacijenti, int N)
        {
            for (int i = 0; i < N; i++)
            {
                if (Pacijenti[i].grupa == "O")
                {
                    Pacijenti[i].O = Pacijenti[i].jedinica;
                    BolO -= Pacijenti[i].jedinica;
                }
            }
            for (int i = 0; i < N; i++)
            {
                if (Pacijenti[i].grupa == "A")
                {
                    if (Pacijenti[i].jedinica <= BolA)
                    {
                        Pacijenti[i].A = Pacijenti[i].jedinica;
                        BolA -= Pacijenti[i].jedinica;
                    }
                    else
                    {
                        Pacijenti[i].A = BolA;
                        BolA = 0;
                        if (BolO >= Pacijenti[i].jedinica - Pacijenti[i].A)
                        {
                            Pacijenti[i].O = Pacijenti[i].jedinica - Pacijenti[i].A;
                            BolO -= (Pacijenti[i].jedinica - Pacijenti[i].A);
                        }
                        else
                        {
                            return false;
                        }
                        
                    }
                }
            }
            for (int i = 0; i < N; i++)
            {
                if (Pacijenti[i].grupa == "B")
                {
                    if (Pacijenti[i].jedinica <= BolB)
                    {
                        Pacijenti[i].B = Pacijenti[i].jedinica;
                        BolB -= Pacijenti[i].jedinica;
                    }
                    else
                    {
                        Pacijenti[i].B = BolB;
                        BolB = 0;
                        if (BolO >= Pacijenti[i].jedinica - Pacijenti[i].B)
                        {
                            Pacijenti[i].O = Pacijenti[i].jedinica - Pacijenti[i].B;
                            BolO -= (Pacijenti[i].jedinica - Pacijenti[i].B);
                        }
                        else
                        {
                            return false;
                        }
                    }
                }
            }
            for (int i = 0; i < N; i++)
            {
                if (Pacijenti[i].grupa == "AB")
                {
                    if (BolO + BolA + BolB + BolAB < Pacijenti[i].jedinica)
                    {
                        return false;
                    }
                    if (Pacijenti[i].jedinica <= BolAB)
                    {
                        Pacijenti[i].AB = Pacijenti[i].jedinica;
                        BolB -= Pacijenti[i].jedinica;
                    }
                    else
                    {
                        Pacijenti[i].AB = BolAB;
                        BolAB = 0;
                        if (BolO >= Pacijenti[i].jedinica - Pacijenti[i].AB)
                        {
                            Pacijenti[i].O = Pacijenti[i].jedinica - Pacijenti[i].AB;
                            BolO -= (Pacijenti[i].jedinica - Pacijenti[i].AB);
                        }
                        else
                        {
                            Pacijenti[i].O = BolO;
                            BolO = 0;
                            if (BolA >= Pacijenti[i].jedinica - Pacijenti[i].AB - Pacijenti[i].O)
                            {
                                Pacijenti[i].A = Pacijenti[i].jedinica - Pacijenti[i].AB - Pacijenti[i].O;
                                BolA -= (Pacijenti[i].jedinica - Pacijenti[i].AB - Pacijenti[i].O);
                            }
                            else
                            {
                                Pacijenti[i].A = BolA;
                                BolA = 0;
                                Pacijenti[i].B = Pacijenti[i].jedinica - Pacijenti[i].AB - Pacijenti[i].O - Pacijenti[i].A;
                                BolB -= (Pacijenti[i].jedinica - Pacijenti[i].AB - Pacijenti[i].O - Pacijenti[i].A);
                            }
                        }
                    }
                }
            }
            return true;
        }
        static void Main(string[] args)
        {
            int BolO, BolA, BolB, BolAB, N;
            N = int.Parse(Console.ReadLine());
            Pacijent[] Pacijenti = new Pacijent[N];
            string[] OABAB = Console.ReadLine().Split(' ');
            BolO = int.Parse(OABAB[0]);
            BolA = int.Parse(OABAB[1]);
            BolB = int.Parse(OABAB[2]);
            BolAB = int.Parse(OABAB[3]);
            Ispunjavanje_Pacijenata(Pacijenti, N);
            if (Default_checker(BolO, BolA, BolB, BolAB, Pacijenti, N) == false || dodela_krvi(BolO, BolA, BolB, BolAB, Pacijenti, N) == false)
            {
                Console.WriteLine("nemoguce");
            }
            else
            {
                Console.WriteLine("moguce");
                for (int K = 0; K < N; K++)
                {
                    Console.WriteLine(Pacijenti[K].O + " " + Pacijenti[K].A + " " + Pacijenti[K].B + " " + Pacijenti[K].AB);
                }
            }
        }
    }
}