using System;

namespace TransfuzijaKrvi
{
    class Program
    {
        static void Main(string[] args)
        {
            int n, o, a, b, ab;
            n = int.Parse(Console.ReadLine());
            string[] ulaz = Console.ReadLine().Split();
            o = int.Parse(ulaz[0]);
            a = int.Parse(ulaz[1]);
            b = int.Parse(ulaz[2]);
            ab = int.Parse(ulaz[3]);
            string[] grupe = new string[n];
            int[] potrebe = new int[n];

            int po = 0, pa = 0, pb = 0, pab = 0;

            for(int i = 0; i < n; i++) 
            {
                ulaz = Console.ReadLine().Split();
                grupe[i] = ulaz[0];
                potrebe[i] = int.Parse(ulaz[1]);
                if (grupe[i] == "O") po += potrebe[i];
                else if (grupe[i] == "A") pa += potrebe[i];
                else if (grupe[i] == "B") pb += potrebe[i];
                else pab += potrebe[i];
            }

            if(o + a + b + ab < po + pa + pb + pab) 
            {
                Console.WriteLine("nemoguce");
            }

            else 
            {
                bool prekini = false;
                for(int i = 0; i < n; i++) 
                {
                    if(po > o || pa > (o - po) + a || pb > (o - po) + b || pab > (o - po) + (a - pa) + (b - pb) + ab) 
                    {
                        prekini = true;
                        break;
                    }
                    if(grupe[i] == "O") 
                    {
                        grupe[i] = potrebe[i] + " 0 0 0";
                        po -= potrebe[i];
                        o -= potrebe[i];
                    }
                    else if(grupe[i] == "A") 
                    {
                        if(a >= potrebe[i]) 
                        {
                            grupe[i] = "0 " + potrebe[i] + " 0 0";
                            pa -= potrebe[i];
                            a -= potrebe[i];
                        }
                        else 
                        {
                            grupe[i] = Convert.ToString(potrebe[i] - a) + " " + a + " 0 0";
                            pa -= potrebe[i];
                            potrebe[i] -= a;
                            a = 0;
                            o -= potrebe[i];
                        }
                    }
                    else if (grupe[i] == "B")
                    {
                        if (b >= potrebe[i])
                        {
                            grupe[i] = "0 0 " + potrebe[i] + " 0";
                            pb -= potrebe[i];
                            b -= potrebe[i];
                        }
                        else
                        {
                            grupe[i] = Convert.ToString(potrebe[i] - b) + " 0 " + b + " 0";
                            pb -= potrebe[i];
                            potrebe[i] -= b;
                            b = 0;
                            o -= potrebe[i];
                        }
                    }
                    else 
                    {
                        if(ab >= potrebe[i]) 
                        {
                            grupe[i] = "0 0 0 " + potrebe[i];
                            pab -= potrebe[i];
                            ab -= potrebe[i];
                        }
                        else 
                        {
                            int xo = o - po;
                            int xa = a - pa;
                            int xb = b - pb;
                            if(ab + xo >= potrebe[i]) 
                            {
                                grupe[i] = Convert.ToString(potrebe[i] - ab) + " 0 0 " + ab;
                                xo -= potrebe[i] - ab;
                                ab = 0;
                            }
                            else if(ab + xo + xa >= potrebe[i]) 
                            {
                                grupe[i] = xo + " " + Convert.ToString(potrebe[i] - ab - xo) + " 0 " + ab;
                                xa -= potrebe[i] - ab - xo;
                                ab = 0;
                                xo = 0;
                            }
                            else 
                            {
                                grupe[i] = xo + " " + xa + " " + Convert.ToString(potrebe[i] - ab - xo - xa) + " " + ab;
                                xb -= potrebe[i] - ab - xo - xa;
                                ab = 0;
                                xo = 0;
                                xa = 0;
                            }
                        }
                    }
                }
                if(prekini) 
                {
                    Console.WriteLine("nemoguce");
                }
                else 
                {
                    Console.WriteLine("moguce");
                    for(int i = 0; i < n; i++) 
                    {
                        Console.WriteLine(grupe[i]);
                    }
                }
            }
        }
    }
}