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

namespace ConsoleApp5
{
    internal class Program
    {
        struct krv
        {
            public string grupa;
            public uint[] primljena;
            public uint kolicina;
        }
        static void Main(string[] args)
        {
            #region unos
            uint N = uint.Parse(Console.ReadLine());
            string linijaunosa = Console.ReadLine();
            string[] niz = linijaunosa.Split(); 
            uint[] KolikoImaGrupa = new uint[4];
            for (int i = 0; i < 4; i++)
            {
                KolikoImaGrupa[i] = uint.Parse(niz[i]);
            }
            krv[] Pacijent = new krv[N];
            for(int i = 0; i < N ; i++)
            {
                linijaunosa = Console.ReadLine();
                string[] niz2 = linijaunosa.Split(' ');
                Pacijent[i].grupa = niz2[0];
                Pacijent[i].kolicina = uint.Parse(niz2[1]);
                Pacijent[i].primljena = new uint[4];
            }
            #endregion
            for(int i = 0; i<N ; i++)
            {
                if (Pacijent[i].grupa == "O")
                {
                    if (Pacijent[i].kolicina <= KolikoImaGrupa[0])
                    {
                        KolikoImaGrupa[0] -= Pacijent[i].kolicina;
                        Pacijent[i].primljena[0] = Pacijent[i].kolicina;
                    }
                    else 
                    {
                        Console.WriteLine("nemoguce");
                        return;
                    }                                            
                }
            }
            for (int i = 0; i < N; i++)
            {
                if (Pacijent[i].grupa == "A")
                {
                    if (Pacijent[i].kolicina <= KolikoImaGrupa[1])
                    {
                        Pacijent[i].primljena[1] = Pacijent[i].kolicina;
                        KolikoImaGrupa[1] -= Pacijent[i].kolicina;
                    }
                    else if (KolikoImaGrupa[1] + KolikoImaGrupa[0] >= Pacijent[i].kolicina)
                    {
                        Pacijent[i].primljena[1] = KolikoImaGrupa[1];
                        Pacijent[i].primljena[0] = (Pacijent[i].kolicina - KolikoImaGrupa[1]);
                        KolikoImaGrupa[1] = 0;
                        KolikoImaGrupa[0] -= (Pacijent[i].kolicina-KolikoImaGrupa[1]);
                    }
                    else
                    {
                        Console.WriteLine("nemoguce");
                        return;
                    }
                }
            }
            for (int i = 0; i < N; i++)
            {
                if (Pacijent[i].grupa == "B")
                {
                    if (Pacijent[i].kolicina <= KolikoImaGrupa[2])
                    {
                        KolikoImaGrupa[2] -= Pacijent[i].kolicina;
                        Pacijent[i].primljena[2] = Pacijent[i].kolicina;
                    }
                    else if (KolikoImaGrupa[2] + KolikoImaGrupa[0] >= Pacijent[i].kolicina)
                    {
                        KolikoImaGrupa[0] -= Pacijent[i].kolicina - KolikoImaGrupa[2];
                        Pacijent[i].primljena[2] = KolikoImaGrupa[2];
                        Pacijent[i].primljena[0] = Pacijent[i].kolicina - KolikoImaGrupa[2];
                        KolikoImaGrupa[2] = 0;
                    }
                    else
                    {
                        Console.WriteLine("nemoguce");
                        return;
                    }
                }
            }
            for (int i = 0; i < Pacijent.Length; i++)
            {
                if (Pacijent[i].grupa == "AB")
                {
                    if (Pacijent[i].kolicina <= KolikoImaGrupa[3])
                    {
                        Pacijent[i].primljena[3] = Pacijent[i].kolicina;
                        KolikoImaGrupa[3] -= Pacijent[i].kolicina;
                    }
                    else if (Pacijent[i].kolicina <=  ( KolikoImaGrupa[3] + KolikoImaGrupa[0] ))
                    {
                        Pacijent[i].primljena[0] = Pacijent[i].kolicina - KolikoImaGrupa[3];
                        Pacijent[i].primljena[3] = KolikoImaGrupa[3];                        
                        KolikoImaGrupa[0] -= Pacijent[i].primljena[0];
                        KolikoImaGrupa[3] = 0;
                    }
                    else if (Pacijent[i].kolicina <=( KolikoImaGrupa[3] + KolikoImaGrupa[0] + KolikoImaGrupa[1] ))
                    {
                        Pacijent[i].primljena[0] = KolikoImaGrupa[0];
                        Pacijent[i].primljena[1] = Pacijent[i].kolicina - KolikoImaGrupa[3] - KolikoImaGrupa[0];
                        Pacijent[i].primljena[3] = KolikoImaGrupa[3];
                        KolikoImaGrupa[0] = 0;
                        KolikoImaGrupa[1] -= Pacijent[i].primljena[1];                        
                        KolikoImaGrupa[3] = 0;
                    }
                    else if (Pacijent[i].kolicina <= (KolikoImaGrupa[3] + KolikoImaGrupa[0] + KolikoImaGrupa[1] + KolikoImaGrupa[2]  ))
                    {
                        Pacijent[i].primljena[0] = KolikoImaGrupa[0];
                        Pacijent[i].primljena[1] = KolikoImaGrupa[1];
                        Pacijent[i].primljena[2] = Pacijent[i].kolicina - KolikoImaGrupa[3] - KolikoImaGrupa[0] - KolikoImaGrupa[1];
                        Pacijent[i].primljena[3] = KolikoImaGrupa[3];
                        KolikoImaGrupa[0] = 0;KolikoImaGrupa[1] = 0; KolikoImaGrupa[3] = 0;
                        KolikoImaGrupa[2] -= Pacijent[i].primljena[1];
                    }
                    else
                    {
                        Console.Write("nemoguce");
                        return;
                    }
                }
            }
            #region ispis
            Console.WriteLine("moguce");
            for(int i = 0; i < N ;i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    Console.Write(Pacijent[i].primljena[j] + " ");
                }
                Console.Write(Pacijent[i].primljena[3]);
                Console.WriteLine("");
            }
            #endregion
        }
    }
}