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

namespace Petlja
{
    class Program
    {
        struct Pacijent
            {
            public string tip;
            public int potreba;
            public int dO;
            public int dA;
            public int dB;
            public int dAB;
        }
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            string[] s = Console.ReadLine().Split();
            int O = int.Parse(s[0]);
            int A = int.Parse(s[1]);
            int B = int.Parse(s[2]);
            int AB = int.Parse(s[3]);
            int pO = 0;
            int pA = 0;
            int pB = 0;
            int pAB = 0;
            Pacijent[] Pacijenti = new Pacijent[n];

            for (int i = 0; i < n; i++)
            {
                string[] s1 = Console.ReadLine().Split();
                Pacijenti[i].tip = s1[0];
                Pacijenti[i].potreba = int.Parse(s1[1]);
                if (s1[0] == "O")
                {
                    pO = pO + int.Parse(s1[1]);
                }
                else if (s1[0] == "A")
                {
                    pA = pA + int.Parse(s1[1]);
                }
                else if (s1[0] == "B")
                {
                    pB = pB + int.Parse(s1[1]);
                }
                else
                {
                    pAB = pAB + int.Parse(s1[1]);
                }
            }
            for (int i = 0; i < n; i++)
            {
                if (Pacijenti[i].tip == "O")
                {
                    if (O >= Pacijenti[i].potreba)
                    {
                        Pacijenti[i].dO = Pacijenti[i].potreba;
                        O = O - Pacijenti[i].potreba;
                    }
                    else
                    {
                        Console.WriteLine("nemoguce");
                        break;
                    }
                }
                if (Pacijenti[i].tip == "A")
                {
                    if (A >= Pacijenti[i].potreba)
                    {
                        Pacijenti[i].dA = Pacijenti[i].potreba;
                        A = A - Pacijenti[i].potreba;
                    }
                    else if (A < Pacijenti[i].potreba && O + A >= Pacijenti[i].potreba)
                    {
                        Pacijenti[i].dA = A;
                        A = 0;
                        Pacijenti[i].dO = O - Pacijenti[i].potreba;
                        O = O - Pacijenti[i].potreba;
                    }
                    else
                    {
                        Console.WriteLine("nemoguce");
                        break;
                    }
                }
                if (Pacijenti[i].tip == "B")
                {
                    if (B >= Pacijenti[i].potreba)
                    {
                        Pacijenti[i].dB = Pacijenti[i].potreba;
                        B = B - Pacijenti[i].potreba;
                    }
                    else if (B < Pacijenti[i].potreba && O + B >= Pacijenti[i].potreba)
                    {
                        Pacijenti[i].dA = B;
                        B = 0;
                        Pacijenti[i].dO = O - Pacijenti[i].potreba;
                        O = O - Pacijenti[i].potreba;
                    }
                    else
                    {
                        Console.WriteLine("nemoguce");
                        break;
                    }
                }
                if (Pacijenti[i].tip == "AB")
                {
                    if (AB >= Pacijenti[i].potreba)
                    {
                        Pacijenti[i].dAB = Pacijenti[i].potreba;
                        AB = AB - Pacijenti[i].potreba;
                    }
                    else if (AB < Pacijenti[i].potreba && O + A + B >= Pacijenti[i].potreba)
                    {
                        Pacijenti[i].dAB = AB;
                        AB = 0;
                        Pacijenti[i].potreba = Pacijenti[i].potreba - AB;
                        Pacijenti[i].dO = Math.Min(O, Pacijenti[i].potreba);
                        Pacijenti[i].potreba = Pacijenti[i].potreba - Pacijenti[i].dO;
                        Pacijenti[i].dA = Math.Min(A, Pacijenti[i].potreba);
                        Pacijenti[i].potreba = Pacijenti[i].potreba - Pacijenti[i].dA;
                        Pacijenti[i].dB = Math.Min(B, Pacijenti[i].potreba);
                        Pacijenti[i].potreba = Pacijenti[i].potreba - Pacijenti[i].dB;
                    }
                    else
                    {
                        Console.WriteLine("nemoguce");
                        break;
                    }
                }
            }
            Console.WriteLine("moguce");
            for (int i = 0; i < n; i++)
            {
                Console.WriteLine(Pacijenti[i].dO + " " + Pacijenti[i].dA + " " + Pacijenti[i].dB + " " + Pacijenti[i].dAB);
            
            }

        }
    }
}