using System;

namespace Transfuzija_krvi
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = Convert.ToInt32(Console.ReadLine());
            string[] ulaz = Console.ReadLine().Split();
            int[] zalihe = new int[ulaz.Length];
            for (int i = 0; i < ulaz.Length; i++) zalihe[i] = Convert.ToInt32(ulaz[i]);
            int[,] memo = new int[4, n];
            int[,] Pacijenti = new int[2, n];
            for(int i=0;i<n;i++)
            {
                ulaz = Console.ReadLine().Split();
                if (ulaz[0] == "O") Pacijenti[0, i] = 0;
                else if (ulaz[0] == "A") Pacijenti[0, i] = 1;
                else if (ulaz[0] == "B") Pacijenti[0, i] = 2;
                else if (ulaz[0] == "AB") Pacijenti[0, i] = 3;
                Pacijenti[1, i] = Convert.ToInt32(ulaz[1]);
            }
            for(int i=0;i<n;i++)
            {
                if(Pacijenti[0,i]==0)
                {
                    int prebacivanje = Math.Min(zalihe[0], Pacijenti[1, i]);
                    zalihe[0] -= prebacivanje;
                    memo[0, i] += prebacivanje;
                    Pacijenti[1, i] -= prebacivanje;
                }
            }
            for (int i = 0; i < n; i++)
            {
                if (Pacijenti[0, i] == 1)
                {
                    //deo za prebacivanje A grupe
                    int prebacivanje = Math.Min(zalihe[1], Pacijenti[1, i]);
                    zalihe[1] -= prebacivanje;
                    memo[1, i] += prebacivanje;
                    Pacijenti[1, i] -= prebacivanje;
                    //deo za prebacivanje O grupe
                    prebacivanje = Math.Min(zalihe[0], Pacijenti[1, i]);
                    zalihe[0] -= prebacivanje;
                    memo[0, i] += prebacivanje;
                    Pacijenti[1, i] -= prebacivanje;
                }
            }
            for (int i = 0; i < n; i++)
            {
                if (Pacijenti[0, i] == 2)
                {
                    //deo za prebacivanje B grupe
                    int prebacivanje = Math.Min(zalihe[2], Pacijenti[1, i]);
                    zalihe[2] -= prebacivanje;
                    memo[2, i] += prebacivanje;
                    Pacijenti[1, i] -= prebacivanje;
                    //deo za prebacivanje O grupe
                    prebacivanje = Math.Min(zalihe[0], Pacijenti[1, i]);
                    zalihe[0] -= prebacivanje;
                    memo[0, i] += prebacivanje;
                    Pacijenti[1, i] -= prebacivanje;
                }
            }
            for (int i = 0; i < n; i++)
            {
                if (Pacijenti[0, i] == 3)
                {
                    //deo za prebacivanje AB grupe
                    int prebacivanje = Math.Min(zalihe[3], Pacijenti[1, i]);
                    zalihe[3] -= prebacivanje;
                    memo[3, i] += prebacivanje;
                    Pacijenti[1, i] -= prebacivanje;
                    //deo za prebacivanje A grupe
                    prebacivanje = Math.Min(zalihe[1], Pacijenti[1, i]);
                    zalihe[1] -= prebacivanje;
                    memo[1, i] += prebacivanje;
                    Pacijenti[1, i] -= prebacivanje;
                    //deo za prebacivanje B grupe
                    prebacivanje = Math.Min(zalihe[2], Pacijenti[1, i]);
                    zalihe[2] -= prebacivanje;
                    memo[2, i] += prebacivanje;
                    Pacijenti[1, i] -= prebacivanje;
                    //deo za prebacivanje O grupe
                    prebacivanje = Math.Min(zalihe[0], Pacijenti[1, i]);
                    zalihe[0] -= prebacivanje;
                    memo[0, i] += prebacivanje;
                    Pacijenti[1, i] -= prebacivanje;
                }
            }
            for (int i = 0; i < n; i++)
            {
                if (Pacijenti[1, i] > 0)
                {
                    Console.WriteLine("nemoguce");
                    return;
                }
            }
            Console.WriteLine("moguce");
            for(int i=0;i<n;i++)
            {
                for (int j = 0; j < 4; j++) Console.Write(memo[j, i] + " ");
                Console.WriteLine();
            }
        }
    }
}