using System;
using Pacijenti = System.Tuple<string, int, int[]>;

namespace Takmicenje
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            string[] s = Console.ReadLine().Split();
            int[] krv = new int[s.Length];
            for(int i=0;i<krv.Length;i++)
            {
                krv[i] = int.Parse(s[i]);
            }
            Pacijenti[] pacijenti = new Pacijenti[n];
            for(int i=0;i<n;i++)
            {
                s = Console.ReadLine().Split();
                pacijenti[i] = Tuple.Create(s[0],int.Parse(s[1]),new int [4]);
            }
            for(int i = 0; i < n; i++)
            {
                if (pacijenti[i].Item1 == "O")
                {
                    if (krv[0] >= pacijenti[i].Item2)
                    {
                        krv[0] -= pacijenti[i].Item2;
                        pacijenti[i].Item3[0] += pacijenti[i].Item2;
                    }
                    else
                    {
                        Console.WriteLine("nemoguce");
                        return;
                    }
                }
            }
            for(int i = 0; i < n; i++)
            {
                if (pacijenti[i].Item1 == "A")
                {
                    if (krv[0] + krv[1] >= pacijenti[i].Item2)
                    {
                        if (krv[1] >= pacijenti[i].Item2)
                        {
                            krv[1] -= pacijenti[i].Item2;
                            pacijenti[i].Item3[1] += pacijenti[i].Item2;
                        }
                        else
                        {
                            krv[0] -= pacijenti[i].Item2 - krv[1];
                            pacijenti[i].Item3[1] = krv[1];
                            krv[1] = 0;
                            pacijenti[i].Item3[0] += pacijenti[i].Item2 - krv[1];
                        }
                    }
                    else
                    {
                        Console.WriteLine("nemoguce");
                        return;
                    }
                }
            }
            for (int i = 0; i < n; i++)
            {
                if (pacijenti[i].Item1 == "B")
                {
                    if (krv[0] + krv[2] >= pacijenti[i].Item2)
                    {
                        if (krv[2] >= pacijenti[i].Item2)
                        {
                            krv[2] -= pacijenti[i].Item2;
                            pacijenti[i].Item3[2] += pacijenti[i].Item2;
                        }
                        else
                        {
                            krv[0] -= pacijenti[i].Item2 - krv[2];
                            pacijenti[i].Item3[2] = krv[2];
                            krv[2] = 0;
                            pacijenti[i].Item3[0] += pacijenti[i].Item2 - krv[2];
                        }
                    }
                    else
                    {
                        Console.WriteLine("nemoguce");
                        return;
                    }
                }
            }
            for (int i=0;i<n;i++)
            {
                if (pacijenti[i].Item1 == "AB")
                {
                    if (krv[0] + krv[1] + krv[2] + krv[3] >= pacijenti[i].Item2)
                    {
                        if (krv[3] >= pacijenti[i].Item2)
                        {
                            krv[3] -= pacijenti[i].Item2;
                            pacijenti[i].Item3[3] += pacijenti[i].Item2;
                        }
                        else
                        {
                            pacijenti[i].Item3[3] = krv[3];
                            krv[3] = 0;
                            if (krv[2] >= pacijenti[i].Item2-pacijenti[i].Item3[3])
                            {
                                krv[2] -= pacijenti[i].Item2 - pacijenti[i].Item3[3];
                                pacijenti[i].Item3[2] += pacijenti[i].Item2 - pacijenti[i].Item3[3];
                            }
                            else
                            {
                                pacijenti[i].Item3[2] = krv[2];
                                krv[2] = 0;
                                if (krv[1] >= pacijenti[i].Item2 - pacijenti[i].Item3[3] - pacijenti[i].Item3[2])
                                {
                                    krv[1] -= pacijenti[i].Item2 - pacijenti[i].Item3[3] - pacijenti[i].Item3[2];
                                    pacijenti[i].Item3[1] += pacijenti[i].Item2 - pacijenti[i].Item3[3] - pacijenti[i].Item3[2];
                                }
                                else
                                {
                                    krv[0] -= pacijenti[i].Item2 - pacijenti[i].Item3[3] - pacijenti[i].Item3[2] - pacijenti[i].Item3[1];
                                    pacijenti[i].Item3[1] = krv[1];
                                    krv[1] = 0;
                                    pacijenti[i].Item3[0] += pacijenti[i].Item2 - pacijenti[i].Item3[3] - pacijenti[i].Item3[2] - pacijenti[i].Item3[1];
                                }
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine("nemoguce");
                        return;
                    }
                }
            }
            Console.WriteLine("moguce");
            for(int l=0;l<pacijenti.Length;l++)
            {
                for(int k=0;k<4;k++)
                {
                    Console.Write(pacijenti[l].Item3[k] + " ");
                }
                Console.WriteLine();
            }
        }
    }
}