using System;

namespace Zadatak_2
{
    class Program
    {
        static void Main(string[] args)
        {
            int brPacijenata = int.Parse(Console.ReadLine());

            string[] ulaz = Console.ReadLine().Split();
            int[] kGrupe = { int.Parse(ulaz[0]), int.Parse(ulaz[1]), int.Parse(ulaz[2]), int.Parse(ulaz[3]) };
            int[,] pacijenti = new int[2, brPacijenata];

            int[,] tretmani = new int[4, brPacijenata];
            for (int i = 0; i < brPacijenata; i++)
            {
                string[] ulaz1 = Console.ReadLine().Split();
                if (ulaz1[0] == "O") pacijenti[0, i] = 0;
                if (ulaz1[0] == "A") pacijenti[0, i] = 1;
                if (ulaz1[0] == "B") pacijenti[0, i] = 2;
                if (ulaz1[0] == "AB") pacijenti[0, i] = 3;
                pacijenti[1, i] = int.Parse(ulaz1[1]);
            }
            bool moguce = true;
            //kGrupe []
            //pacijenti [,]
            //tretmani [,]

            //Popunjavanje O

            for (int i = 0; i < brPacijenata; i++)
            {
                if (pacijenti[0, i] == 0)
                {
                    kGrupe[0] = kGrupe[0] - pacijenti[1, i];
                    tretmani[0, i] = pacijenti[1, i];
                }
            }
            if (kGrupe[0] < 0)
            {
                moguce = false;
                goto Kraj;
            }
            for (int i = 0; i < brPacijenata; i++)
            {
                if (pacijenti[0, i] == 1)
                {
                    if (kGrupe[1] > pacijenti[1, i])
                    {
                        kGrupe[1] = kGrupe[1] - pacijenti[1, i];
                        tretmani[1, i] = pacijenti[1, i];
                    }
                    else
                    {
                        pacijenti[1, i] = pacijenti[1, i] - kGrupe[1];
                        tretmani[1, i] = kGrupe[1];
                        kGrupe[1] = 0;

                        kGrupe[0] = kGrupe[0] - pacijenti[1, i];
                        tretmani[0, i] = pacijenti[1, i];
                    }
                }

            }
            if ((kGrupe[0] < 0) || (kGrupe[1] < 0))
            {
                moguce = false;
                goto Kraj;
            }
            for (int i = 0; i < brPacijenata; i++)
            {
                if (pacijenti[0, i] == 2)
                {
                    if (kGrupe[2] > pacijenti[1, i])
                    {
                        kGrupe[2] = kGrupe[2] - pacijenti[1, i];
                        tretmani[2, i] = pacijenti[1, i];
                    }
                    else
                    {
                        pacijenti[1, i] = pacijenti[1, i] - kGrupe[2];
                        tretmani[2, i] = kGrupe[2];
                        kGrupe[2] = 0;

                        kGrupe[0] = kGrupe[0] - pacijenti[1, i];
                        tretmani[0, i] = pacijenti[1, i];
                    }
                }
            }
            if ((kGrupe[0] < 0) || (kGrupe[1] < 0) || (kGrupe[2] < 0))
            {
                moguce = false;
                goto Kraj;
            }
            for (int i = 0; i < brPacijenata; i++)
            {
                if (pacijenti[0, i] == 3)
                {
                    if (kGrupe[3] > pacijenti[1, i])
                    {
                        kGrupe[3] = kGrupe[3] - pacijenti[1, i];
                        tretmani[3, i] = pacijenti[1, i];
                    }
                    else
                    {
                        pacijenti[1, i] = pacijenti[1, i] - kGrupe[3];
                        tretmani[3, i] = kGrupe[3];
                        kGrupe[3] = 0;

                        if (kGrupe[2] > pacijenti[1, i])
                        {
                            kGrupe[2] = kGrupe[2] - pacijenti[1, i];
                            tretmani[2, i] = pacijenti[1, i];
                        }
                        else
                        {
                            pacijenti[1, i] = pacijenti[1, i] - kGrupe[2];
                            tretmani[2, i] = kGrupe[2];
                            kGrupe[2] = 0;

                            if (kGrupe[1] > pacijenti[1, i])
                            {
                                kGrupe[1] = kGrupe[1] - pacijenti[1, i];
                                tretmani[1, i] = pacijenti[1, i];
                            }
                            else
                            {
                                pacijenti[1, i] = pacijenti[1, i] - kGrupe[1];
                                tretmani[1, i] = kGrupe[1];
                                kGrupe[1] = 0;

                                if (kGrupe[0] > pacijenti[1, i])
                                {
                                    kGrupe[0] = kGrupe[0] - pacijenti[1, i];
                                    tretmani[0, i] = pacijenti[1, i];
                                }
                                else
                                {
                                    pacijenti[1, i] = pacijenti[1, i] - kGrupe[0];
                                    tretmani[0, i] = kGrupe[0];
                                    kGrupe[0] = 0;

                                    if (pacijenti[1, i] != 0)
                                    {
                                        moguce = false;
                                        goto Kraj;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            Kraj:
            if (moguce == false) Console.WriteLine("nemoguce");
            else
            {
                for(int i = 0; i < brPacijenata; i++)
                {
                    Console.WriteLine(tretmani[0,i] + " " + tretmani[1,i] + " " + tretmani[2,i] + " " + tretmani[3,i]);
                }
            }
        }
    }
    
}