using System;

namespace transfuzija_krvi
{
    class Program
    {
        static void Main(string[] args)
        {
            bool ok = true;
            int N = int.Parse(Console.ReadLine());
            string[] s = Console.ReadLine().Split();
            int[] krvneGrupe = new int[4];
            int O = int.Parse(s[0]);
            krvneGrupe[0] = O;
            int A = int.Parse(s[1]);
            krvneGrupe[1] = A;
            int B = int.Parse(s[2]);
            krvneGrupe[2] = B;
            int AB = int.Parse(s[3]);
            krvneGrupe[3] = AB;
            string[] a = new string[N];
            int[] b = new int[N];
            int[,] M = new int[N, 4];
            for (int i = 0; i < N; i++)
            {
                s = Console.ReadLine().Split();
                a[i] = s[0];
                b[i] = int.Parse(s[1]);
            }
            for (int i = 0; i < N; i++)
            {
                if (a[i] == "O")
                {
                    if (O >= b[i])
                    {
                        O -= b[i];
                        M[i, 0] = b[i];
                    }
                    else
                        ok = false;
                }
                else if (a[i] == "A")
                {
                    if (A >= b[i])
                    {
                        A -= b[i];
                        M[i, 1] = b[i];
                    }
                    else if (A > 0 && A < b[i])
                    {
                        b[i] -= A;
                        M[i, 1] = A;
                        A -= b[i];
                        if (O >= b[i])
                        {
                            O -= b[i];
                            M[i, 0] = b[i];
                        }
                        else
                            ok = false;
                    }
                    else if (O > b[i] && A == 0)
                    {
                        O -= b[i];
                        M[i, 0] = b[i];
                    }
                    else
                        ok = false;
                }
                else if (a[i] == "B")
                {
                    if (B >= b[i])
                    {
                        B -= b[i];
                        M[i, 2] = b[i];
                    }
                    else if (B > 0 && B < b[i])
                    {
                        b[i] -= B;
                        M[i, 2] = B;
                        B -= b[i];
                        if (O >= b[i])
                        {
                            O -= b[i];
                            M[i, 0] = b[i];
                        }
                        else
                            ok = false;
                    }
                    else if (O > b[i] && B == 0)
                    {
                        O -= b[i];
                        M[i, 0] = b[i];
                    }
                    else
                        ok = false;
                }
                else if (a[i] == "AB")
                {
                    if (AB >= b[i])
                    {
                        AB -= b[i];
                        M[i, 3] = b[i];
                    }
                    else if (AB > 0 && AB < b[i])
                    {
                        b[i] -= AB;
                        M[i, 3] = AB;
                        AB -= b[i];
                        if (O >= b[i])
                        {
                            O -= b[i];
                            M[i, 0] = b[i];
                        }
                        else if (A >= b[i])
                        {
                            A -= b[i];
                            M[i, 1] = b[i];
                        }
                        else if (B >= b[i])
                        {
                            B -= b[i];
                            M[i, 2] = b[i];
                        }
                        else
                            ok = false;
                    }
                    else if (AB == 0)
                    {
                        if (A > 0 || B > 0)
                        {
                            if (A >= b[i])
                            {
                                A -= b[i];
                                M[i, 1] = b[i];
                            }
                            else if (A < b[i])
                            {
                                b[i] -= A;
                                A -= b[i];
                                M[i, 1] = b[i];
                                if (B > b[i])
                                {
                                    B -= b[i];
                                    M[i, 2] = b[i];
                                }
                                else if (O > b[i])
                                {
                                    O -= b[i];
                                    M[i, 0] = b[i];
                                }
                                else
                                    ok = false;
                            }
                        }
                        else if (O >= b[i])
                        {
                            O -= b[i];
                            M[i, 0] = b[i];
                        }
                        else
                            ok = false;
                    }
                }
            }
            if (ok)
            {
                Console.WriteLine("moguce");
                for (int i = 0; i < N; i++)
                {
                    for (int j = 0; j < krvneGrupe.Length; j++)
                    {
                        Console.Write(M[i, j] + " ");
                    }
                    Console.WriteLine();
                }
            }
            else
                Console.WriteLine("nemoguce");
        }
    }
}