using System;

namespace TRANSFUZIJA_KRVI
{
    class Program
    {
        static void Main(string[] args)
        {
            int N = int.Parse(Console.ReadLine());
            string[] pacijentiGrupa = new string[N];
            int[] pacijentiPotrebno = new int[N], krvnaGrupa = new int[4];
            string[] unos1 = Console.ReadLine().Split(' ');
            string[] ispis = new string[N];
            bool moguce = true;
            krvnaGrupa[0] = int.Parse(unos1[0]);
            krvnaGrupa[1] = int.Parse(unos1[1]);
            krvnaGrupa[2] = int.Parse(unos1[2]);
            krvnaGrupa[3] = int.Parse(unos1[3]);
            for (int i = 0; i < N; i++)
            {
                string[] unos2 = Console.ReadLine().Split(' ');
                pacijentiGrupa[i] = unos2[0];
                pacijentiPotrebno[i] = int.Parse(unos2[1]);
                if (pacijentiGrupa[i] == "O")
                {
                    if(krvnaGrupa[0] >= pacijentiPotrebno[i])
                    {
                        ispis[i] = pacijentiPotrebno[i] + " 0 0 0";
                        krvnaGrupa[0] -= pacijentiPotrebno[i];
                    }
                    else
                    {
                        moguce = false;
                    }
                }
                else if(pacijentiGrupa[i] == "A")
                {                    
                    if(krvnaGrupa[1] >= pacijentiPotrebno[i])
                    {
                        ispis[i] = "0 " + pacijentiPotrebno[i] + " 0 0";
                        krvnaGrupa[1] -= pacijentiPotrebno[i];
                    }
                    else if (krvnaGrupa[0] >= pacijentiPotrebno[i])
                    {
                        ispis[i] = pacijentiPotrebno[i] + " 0 0 0";
                        krvnaGrupa[0] -= pacijentiPotrebno[i];
                    }
                    else if(krvnaGrupa[0] + krvnaGrupa[1] >= pacijentiPotrebno[i])
                    {
                        if (krvnaGrupa[0] <= pacijentiPotrebno[i])
                        {
                            ispis[i] = krvnaGrupa[0] + " " + pacijentiPotrebno[i] + " 0 0";
                            krvnaGrupa[1] -= (pacijentiPotrebno[i] - krvnaGrupa[0]);
                            krvnaGrupa[0] = 0;
                        }
                        else if (krvnaGrupa[1] <= pacijentiPotrebno[i])
                        {
                            ispis[i] = pacijentiPotrebno[i] + " " + krvnaGrupa[1] + " 0 0";
                            krvnaGrupa[0] -= (pacijentiPotrebno[i] - krvnaGrupa[1]);
                            krvnaGrupa[1] = 0;
                        }
                    }
                    else
                    {
                        moguce = false;
                    }
                }
                else if (pacijentiGrupa[i] == "B")
                {
                    if (krvnaGrupa[2] >= pacijentiPotrebno[i])
                    {
                        ispis[i] = "0 0 " + pacijentiPotrebno[i] + " 0";
                        krvnaGrupa[2] -= pacijentiPotrebno[i];
                    }
                    else if (krvnaGrupa[0] >= pacijentiPotrebno[i])
                    {
                        ispis[i] = pacijentiPotrebno[i] + " 0 0 0";
                        krvnaGrupa[0] -= pacijentiPotrebno[i];
                    }
                    else if (krvnaGrupa[0] + krvnaGrupa[2] >= pacijentiPotrebno[i])
                    {
                        if (krvnaGrupa[0] <= pacijentiPotrebno[i])
                        {
                            ispis[i] = krvnaGrupa[0] + " 0 " + pacijentiPotrebno[i] + " 0";
                            krvnaGrupa[2] -= (pacijentiPotrebno[i] - krvnaGrupa[0]);
                            krvnaGrupa[0] = 0;
                        }
                        else if (krvnaGrupa[2] <= pacijentiPotrebno[i])
                        {
                            ispis[i] = pacijentiPotrebno[i] + " 0 " + krvnaGrupa[2] + " 0";
                            krvnaGrupa[0] -= (pacijentiPotrebno[i] - krvnaGrupa[2]);
                            krvnaGrupa[2] = 0;
                        }
                    }
                    else
                    {
                        moguce = false;
                    }
                }
                else if(pacijentiGrupa[i] == "AB")
                {
                    if (krvnaGrupa[0] >= pacijentiPotrebno[i])
                    {
                        ispis[i] = pacijentiPotrebno[i] + " 0 0 0";
                        krvnaGrupa[0] -= pacijentiPotrebno[i];
                    }
                    else if (krvnaGrupa[1] >= pacijentiPotrebno[i])
                    {
                        ispis[i] = "0 " + pacijentiPotrebno[i] + " 0 0";
                        krvnaGrupa[1] -= pacijentiPotrebno[i];
                    }
                    else if (krvnaGrupa[2] >= pacijentiPotrebno[i])
                    {
                        ispis[i] = "0 0 " + pacijentiPotrebno[i] + " 0";
                        krvnaGrupa[2] -= pacijentiPotrebno[i];
                    }
                    else if (krvnaGrupa[3] >= pacijentiPotrebno[i])
                    {
                        ispis[i] = "0 0 0 " + pacijentiPotrebno[i];
                        krvnaGrupa[3] -= pacijentiPotrebno[i];
                    }
                    else if(krvnaGrupa[0] + krvnaGrupa[1] + krvnaGrupa[2] + krvnaGrupa[3] >= pacijentiPotrebno[i])
                    {
                        int j = 0;
                        int[] A = new int[4];
                        bool x;
                        do
                        {
                            x = false;
                            if (krvnaGrupa[j % 5] > 0)
                            {
                                A[j % 5]++;
                                krvnaGrupa[j % 5]--;
                                pacijentiPotrebno[i]--;
                                x = true;
                            }
                            if(j % 5 == 4 && !x)
                            {
                                moguce = false;
                                break;
                            }
                            j++;
                        } while (pacijentiPotrebno[i] > 0);
                        ispis[i] = A[0] + " " + A[1] + " " + A[2] + " " + A[3];
                    }
                    else
                    {
                        moguce = false;
                    }
                }
            }
            if (moguce)
            {
                Console.WriteLine("moguce");
                for(int i = 0; i < N; i++)
                {
                    Console.WriteLine(ispis[i]);
                }
            }
            else
            {
                Console.WriteLine("nemoguce");
            }
        }
    }
}