using System;

namespace zad2_kv1
{
    class Program
    {
        public struct Pacijent
        {
            public string krvnagrupa;
            public int brjed;
            public int[] rez;
        }
        static void Main(string[] args)
        {
            int N = int.Parse(Console.ReadLine());
            string[] r = Console.ReadLine().Split(' ');
            int o = int.Parse(r[0]);
            int a = int.Parse(r[1]);
            int b = int.Parse(r[2]);
            int ab = int.Parse(r[3]);
            Pacijent[] niz = new Pacijent[N];
            for (int i = 0; i < N; i++)
            {
                string[] r2 = Console.ReadLine().Split(' ');
                niz[i].krvnagrupa = r2[0];
                niz[i].brjed = int.Parse(r2[1]);
                niz[i].rez = new int[4];
            }
            bool f = false;
            for (int i = 0; i < N; i++)
            {
                if (niz[i].krvnagrupa == "O" && !f)
                {
                    if (o - niz[i].brjed >= 0)
                    {
                        o -= niz[i].brjed;
                        niz[i].rez[0] = niz[i].brjed;
                        niz[i].brjed = 0;

                    }
                    else { f = true; break; }
                }
            }
            for (int i = 0; i < N; i++)
            {
                if (niz[i].krvnagrupa == "A" && !f)
                {
                    if (a - niz[i].brjed >= 0)
                    {
                        a -= niz[i].brjed;
                        niz[i].rez[1] = niz[i].brjed;
                        niz[i].brjed = 0;
                    }
                    else
                    {
                        niz[i].brjed -= a;
                        niz[i].rez[1] = a;
                        a = 0;
                        if (o - niz[i].brjed >= 0)
                        {
                            o -= niz[i].brjed;
                            niz[i].rez[0] = niz[i].brjed;
                            niz[i].brjed = 0;
                        }
                        else { f = true; break; }
                    }
                }
            }
            for (int i = 0; i < N; i++)
            {
                if (niz[i].krvnagrupa == "B" && !f)
                {
                    if (b - niz[i].brjed >= 0)
                    {
                        b -= niz[i].brjed;
                        niz[i].rez[2] = niz[i].brjed;
                        niz[i].brjed = 0;
                    }
                    else
                    {
                        niz[i].brjed -= b;
                        b = 0;
                        niz[i].rez[2] = b;
                        if (o - niz[i].brjed >= 0)
                        {
                            o -= niz[i].brjed;
                            niz[i].rez[0] = niz[i].brjed;
                            niz[i].brjed = 0;
                        }
                        else { f = true; break; }
                    }
                }
            }
            for (int i = 0; i < N; i++)
            {
                if (niz[i].krvnagrupa == "AB" && !f)
                {
                    if (ab - niz[i].brjed >= 0)
                    {
                        ab -= niz[i].brjed;
                        niz[i].rez[3] = niz[i].brjed;
                        niz[i].brjed = 0;
                    }
                    else
                    {
                        niz[i].brjed -= ab;
                        niz[i].rez[3] = ab;
                        ab = 0;
                        if (a - niz[i].brjed >= 0)
                        {
                            a -= niz[i].brjed;
                            niz[i].rez[1] = niz[i].brjed;
                            niz[i].brjed = 0;
                        }
                        else
                        {
                            niz[i].brjed -= a;
                            niz[i].rez[1] = a;
                            a = 0;

                            if (b - niz[i].brjed >= 0)
                            {
                                b -= niz[i].brjed;
                                niz[i].rez[2] = niz[i].brjed;
                                niz[i].brjed = 0;
                            }

                            else
                            {
                                niz[i].brjed -= b;
                                niz[i].rez[2] = b;
                                b = 0;
                                if (o - niz[i].brjed >= 0)
                                {
                                    o -= niz[i].brjed;
                                    niz[i].rez[0] = niz[i].brjed;
                                    niz[i].brjed = 0;
                                }
                                else { f = true; break; }
                            }
                        }
                    }
                }
            }
            if (f)
            {
                Console.WriteLine("nemoguce");
            }
            else
            {
                Console.WriteLine("moguce");
                for (int i = 0; i < N; i++)
                {
                    for (int j = 0; j < 4; j++)
                    {
                        Console.Write(niz[i].rez[j] + " ");
                    }
                    Console.WriteLine();
                }
            }

            Console.ReadKey();
        }

    }
}