using System;

namespace Zadatak
{
    class Program
    {
        static void Resenje(string[] grupa, int[] jedinica, int O, int A, int B, int AB)
        {
            int[,] resenje = new int[grupa.Length, 5];
            for (int i = 0; i < grupa.Length; i++)
            {
                if (grupa[i] == "O")
                {
                    if (O < jedinica[i])
                    {
                        Console.WriteLine("nemoguce");
                        return;
                    }
                    O -= jedinica[i];
                    resenje[i, 0] = jedinica[i];
                }
                if (grupa[i] == "A")
                {
                    if (A + O < jedinica[i])
                    {
                        Console.WriteLine("nemoguce");
                        return;
                    }
                    if (A - jedinica[i] >= 0)
                    {
                        A -= jedinica[i];
                        resenje[i, 1] = jedinica[i];
                    }
                    if (A - jedinica[i] <= 0)
                    {
                        jedinica[i] -= A;
                        resenje[i, 1] = A;
                        A = 0;
                        O -= jedinica[i];
                        resenje[i, 0] = jedinica[i];
                    }
                }
                if (grupa[i] == "B")
                {
                    if (B + O < jedinica[i])
                    {
                        Console.WriteLine("nemoguce");
                        return;
                    }
                    if (B - jedinica[i] >= 0)
                    {
                        B -= jedinica[i];
                        resenje[i, 2] = jedinica[i];
                    }
                    if (B - jedinica[i] <= 0)
                    {
                        jedinica[i] -= B;
                        resenje[i, 2] = B;
                        O -= jedinica[i];
                        resenje[i, 0] = jedinica[i];
                        B = 0;
                    }
                }
                if (grupa[i] == "AB")
                {
                    if (A + B + O + AB < jedinica[i])
                    {
                        Console.WriteLine("nemoguce");
                        return;
                    }
                    if (AB - jedinica[i] >= 0)
                    {
                        AB -= jedinica[i];
                        resenje[i, 3] = jedinica[i];
                    }
                    if (AB + O >= jedinica[i])
                    {
                        jedinica[i] -= AB;
                        resenje[i, 3] = AB;
                        O -= jedinica[i];
                        resenje[i, 0] = jedinica[i];
                        AB = 0;
                    }
                    if (AB + O + B >= jedinica[i])
                    {
                        jedinica[i] -= AB;
                        resenje[i, 3] = AB;
                        jedinica[i] -= O;
                        resenje[i, 0] = O;
                        B -= jedinica[i];
                        resenje[i, 2] = jedinica[i];
                        AB = 0;
                        O = 0;
                    }
                    if (AB + O + B + A >= jedinica[i])
                    {
                        jedinica[i] -= AB;
                        resenje[i, 3] = AB;
                        jedinica[i] -= O;
                        resenje[i, 0] = O;
                        jedinica[i] -= B;
                        resenje[i, 1] = B;
                        A -= jedinica[i];
                        resenje[i, 2] = jedinica[i];
                        AB = 0;
                        O = 0;
                        B = 0;
                    }

                }
            }
            Console.WriteLine("moguce");
            for (int i = 0; i < grupa.Length; i++)
            {
                Console.WriteLine(resenje[i, 0] + " " + resenje[i, 1] + " " + resenje[i, 2] + " " + resenje[i, 3]);
            }
            return;
        }
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            string[] input = Console.ReadLine().Split();
            int O = int.Parse(input[0]);
            int A = int.Parse(input[1]);
            int B = int.Parse(input[2]);
            int AB = int.Parse(input[3]);
            string[] grupa = new string[n];
            int[] jedinica = new int[n];
            for (int i = 0; i < n; i++)
            {
                string[] _input = Console.ReadLine().Split();
                grupa[i] = _input[0];
                jedinica[i] = int.Parse(_input[1]);
            }
            Resenje(grupa, jedinica, O, A, B, AB);
        }
    }
}