using System;

namespace nesusedni
{
    class Program
    {
        static void Main(string[] args)
        {
            long n = long.Parse(Console.ReadLine());
            string[] unos = Console.ReadLine().Split();
            int o = int.Parse(unos[0]);
            int a = int.Parse(unos[1]);
            int b = int.Parse(unos[2]);
            int ab = int.Parse(unos[3]);
            string [] niz = new string[n];
            int pom0 = 0;
            int poma = 0;
            int pomb = 0;
            int pomab = 0;
            int k = 0;
            for(int i = 0; i < n; i++)
            {
                pom0 = 0;
                poma = 0;
                pomb = 0;
                pomab = 0;
                string[] unosimo = Console.ReadLine().Split();
                int j = int.Parse(unosimo[1]);
                if (unosimo[0] == "A")
                {
                    if (j <= a)
                    {
                        poma = j;
                        a -= j;
                    }
                    else if ((j - a) <= o) 
                    {
                        poma = a;
                        pom0 = j - a;
                        a = 0;
                        o -= (j - a);
                    }
                }
                else if (unosimo[0] == "B")
                {
                    if (j <= b)
                    {
                        pomb = j;
                        b -= j;
                    }
                    else if ((j - b) <= o) 
                    {
                        pomb = b;
                        pom0 = j - b;
                        b = 0;
                        b -= (j - b);
                    }
                }
                else if (unosimo[0] == "AB")
                {
                    if (j <= ab)
                    {
                        pomab = j;
                        ab -= j;
                    }
                    else if ((j - ab) <= (a + o + b)) 
                    {
                        int p = Math.Max(o, a);
                        int pom = Math.Max(p, b);
                        if (pom == o)
                        {
                            pom0 = j - ab;
                            o -= (j - ab);
                        }
                        else if (pom == a)
                        {
                            poma = j - ab;
                            a -= (j - ab);
                        }
                        else if (pom == b)
                        {
                            pomb = j - ab;
                            b -= (j - ab);
                        }
                        pomab = ab;
                        ab = 0;
                    }
                }
                else if (unosimo[0] == "O")
                {
                    if (j <= o)
                    {
                        pom0 = j;
                        o -= j;
                    }
                }


                if ((pom0 == 0) && (poma == 0) && (pomb == 0) && (pomab == 0))
                {
                    k++;
                }
                else
                {
                    niz[i] = (Convert.ToString(pom0)) + " " + (Convert.ToString(poma)) + " " + (Convert.ToString(pomb)) + " " + (Convert.ToString(pomab));
                }
            }
            if (k == 0)
            {
                string izlaz = "moguce";
                Console.WriteLine(izlaz);
                for (int c = 0; c < n; c++)
                {
                    Console.WriteLine(niz[c]);
                }
            }
            else
            {
                string izlaz = "nemoguce";
                Console.WriteLine(izlaz);
            }  
        }
    }
}