using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            uint[] kg = Array.ConvertAll(Console.ReadLine().Split(' '), uint.Parse);
            Cova[] cove = new Cova[n];
            dato[] data = new dato[n];
            int[] index = new int[n];
            int j = 0;
            bool moguce = true;
            for (int i=0;i<n;i++)
            {
                string[] temp = Console.ReadLine().Split(' ');
                cove[i].tip = temp[0]; cove[i].kolicina = uint.Parse(temp[1]);
            }
            for(int i=0;i<n;i++)
            {
                if (cove[i].tip == "O")
                {
                    if (cove[i].kolicina > kg[0]) { moguce = false; break; }
                    else
                    {
                        kg[0] -= cove[i].kolicina;
                        data[i].O = cove[i].kolicina;
                    }
                }
                else if (cove[i].tip == "A")
                {
                    if (cove[i].kolicina > kg[1])
                    {
                        if (cove[i].kolicina > kg[0]+kg[1]) { moguce = false; break; }
                        else
                        {
                            data[i].A = kg[1];
                            cove[i].kolicina -= kg[1];
                            kg[1] = 0;
                            kg[0] -= cove[i].kolicina;
                            data[i].O = cove[i].kolicina;
                        }
                    }
                    else
                    {
                        kg[1] -= cove[i].kolicina;
                        data[i].A = cove[i].kolicina;
                    }
                }
                else if (cove[i].tip == "B")
                {
                    if (cove[i].kolicina > kg[2])
                    {
                        if (cove[i].kolicina > kg[0]+kg[2]) { moguce = false; break; }
                        else
                        {
                            data[i].B = kg[2];
                            cove[i].kolicina -= kg[2];
                            kg[2] = 0;
                            kg[0] -= cove[i].kolicina;
                            data[i].O = cove[i].kolicina;
                        }
                    }
                    else
                    {
                        kg[2] -= cove[i].kolicina;
                        data[i].B = cove[i].kolicina;
                    }
                }
                else { index[j] = i;j++; }
            }
            if (!moguce)
            {
                Console.WriteLine("nemoguce");
            }
            else
            {
                for (int i = 0; i < j; i++)
                {
                    if (cove[index[i]].kolicina > kg[3])
                    {
                        if (cove[index[i]].kolicina > kg[3] + kg[2] + kg[1] + kg[0]) { moguce = false; break; }
                        else
                        {
                            data[index[i]].AB = kg[3];
                            cove[index[i]].kolicina -= kg[3];
                            kg[3] = 0;
                            if (kg[1] > cove[index[i]].kolicina) { kg[1] -= cove[index[i]].kolicina; data[index[i]].A = cove[index[i]].kolicina; }
                            else
                            {
                                 data[index[i]].A = kg[1]; cove[index[i]].kolicina -= kg[1]; kg[1] = 0;

                                if (kg[2] > cove[index[i]].kolicina) { kg[2] -= cove[index[i]].kolicina; data[index[i]].B = cove[index[i]].kolicina; }
                                else
                                {
                                    data[index[i]].B = kg[2]; cove[index[i]].kolicina -= kg[2]; kg[2] = 0;

                                    if (kg[0] > cove[index[i]].kolicina) { kg[0] -= cove[index[i]].kolicina; data[index[i]].O = cove[index[i]].kolicina; }
                                    else {  data[index[i]].O = kg[0]; cove[index[i]].kolicina -= kg[0]; kg[0] = 0; }
                                }
                            }
                        }
                    }
                    else
                    {
                        kg[3] -= cove[index[i]].kolicina;
                        data[index[i]].AB = cove[index[i]].kolicina;
                    }

                }
                if (!moguce)
                {
                    Console.WriteLine("nemoguce");
                }
                else
                {
                    for (int i = 0; i < n; i++)
                    {
                        Console.WriteLine(data[i].O + " "+ data[i].A + " "+ data[i].B + " "+ data[i].AB);
                    }
                }
            }
        }
        struct dato
        {
            public uint O, A, B, AB;
        }
        struct Cova
        {
            public uint kolicina;
            public string tip;
        }
    }
}