using System;
using System.Linq;
using System.Collections.Generic;

class program
{
    static void Main()
    {
        int n = int.Parse(Console.ReadLine());
        int[] krvne_grupe = new int[4];
        int[,] podela = new int[n, 4];
        var s = Console.ReadLine().Split();
        krvne_grupe[0] = int.Parse(s[0]);
        krvne_grupe[1] = int.Parse(s[1]);
        krvne_grupe[2] = int.Parse(s[2]);
        krvne_grupe[3] = int.Parse(s[3]);
        for (int i=0; i<n; i++)
        {
            var t = Console.ReadLine().Split();
            string tip = t[0];
            int kolicina = int.Parse(t[1]);
            if (tip == "O")
            {
                krvne_grupe[0] -= kolicina;
                podela[i, 0] += kolicina;
            }
            else if (tip == "A")
            {
                if (krvne_grupe[1] - kolicina < 0)
                {
                    podela[i, 1] += krvne_grupe[1];
                    krvne_grupe[0] -= (kolicina - krvne_grupe[1]);
                    podela[i, 0] += kolicina - krvne_grupe[1];
                    krvne_grupe[1] = 0;
                    
                }
                else
                {
                    krvne_grupe[1] -= kolicina;
                    podela[i, 1] += kolicina;
                }


            }
            else if (tip == "B")
            {
                if (krvne_grupe[2] - kolicina < 0)
                {
                    podela[i, 2] += krvne_grupe[2];
                    krvne_grupe[0] -= (kolicina - krvne_grupe[2]);
                    podela[i, 0] += kolicina - krvne_grupe[2];
                    krvne_grupe[2] = 0;

                }
                else
                {
                    krvne_grupe[2] -= kolicina;
                    podela[i, 2] += kolicina;
                }

            }
            else if(tip=="AB")
            {
                if (krvne_grupe[3] - kolicina < 0)
                {
                    podela[i, 3] = krvne_grupe[3];
                    kolicina -= krvne_grupe[3];
                    krvne_grupe[3] = 0;
                    while (kolicina > 0)
                    {
                        for(int q=2; q>=0; q--)
                        {
                            if (kolicina <= krvne_grupe[q])
                            {
                                krvne_grupe[q] -= kolicina;
                                podela[i, q] += kolicina;
                                kolicina = 0;
                            }
                            else
                            {
                                kolicina -= krvne_grupe[q];
                                podela[i, q] += krvne_grupe[q];
                                krvne_grupe[q] = 0;
                            }
                        }
                    }
                }
                else
                {
                    krvne_grupe[3] -= kolicina;
                    podela[i, 3] += kolicina;
                }
            }
        }
        bool provera = true;
        for (int w=0; w<4; w++)
        {
            if (krvne_grupe[w] < 0)
            {
                Console.WriteLine("nemoguce");
                provera = false;
            }
        }
        if (provera)
        {
            Console.WriteLine("moguce");
            for(int i=0; i<n; i++)
            {
                for(int j=0; j<4; j++)
                {
                    Console.Write(podela[i, j]+" ");
                }
                Console.WriteLine();
            }
        }

    }
}