using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


    class Program
    {
        struct Pacijent
        {
            public string grupa;
            public int jedinice;
            public int o;
            public int a;
            public int b;
            public int ab;
        }
        static void Main(string[] args)
        {
            int n = Convert.ToInt32(Console.ReadLine());
            string[] unos = Console.ReadLine().Split();
            int[] zalihe = new int[4];
            zalihe[0] = Convert.ToInt32(unos[0]);
            zalihe[1] = Convert.ToInt32(unos[1]);
            zalihe[2] = Convert.ToInt32(unos[2]);
            zalihe[3] = Convert.ToInt32(unos[3]);


            Pacijent[] p = new Pacijent[n];
            string[] unosp;
            for(int i = 0;i < n;i++)
            {
                unosp = Console.ReadLine().Split(' ');
                p[i].grupa = unosp[0];
                p[i].jedinice = Convert.ToInt32(unosp[1]);
                p[i].o = 0;
                p[i].a = 0;
                p[i].b = 0;
                p[i].ab = 0;
            }

            for(int i = 0;i < n;i++)
            {
                if(p[i].grupa == "O")
                {
                    if(p[i].jedinice > zalihe[0])
                    {
                        Console.WriteLine("nemoguce");
                        return;
                    }
                    p[i].o = p[i].jedinice;
                    zalihe[0] -= p[i].jedinice;
                    
                }
            }

            for (int i = 0; i < n; i++)
            {
                if(p[i].grupa == "A")
                {
                    if(p[i].jedinice > zalihe[1])
                    {
                        p[i].a = zalihe[1];
                        p[i].jedinice -= zalihe[1];
                        zalihe[1] = 0;
                        if (p[i].jedinice > zalihe[0])
                        {
                            Console.WriteLine("nemoguce");
                            return;
                        }
                        p[i].o = p[i].jedinice;
                        zalihe[0] -= p[i].jedinice;
                    }
                    else
                    {
                        p[i].a = p[i].jedinice;
                        zalihe[1] -= p[i].jedinice;
                    }
                }
                if (p[i].grupa == "B")
                {
                    if (p[i].jedinice > zalihe[2])
                    {
                        p[i].b = zalihe[2];
                        p[i].jedinice -= zalihe[2];
                        zalihe[2] = 0;
                        if (p[i].jedinice > zalihe[0])
                        {
                            Console.WriteLine("nemoguce");
                            return;
                        }
                        p[i].o = p[i].jedinice;
                        zalihe[0] -= p[i].jedinice;
                    }
                    else
                    {
                        p[i].b = p[i].jedinice;
                        zalihe[2] -= p[i].jedinice;
                    }
                }
            }

            /*for (int i = 0; i < n; i++)
            {
                if (p[i].grupa == "B")
                {
                    if (p[i].jedinice > zalihe[2])
                    {
                        p[i].b = zalihe[2];
                        p[i].jedinice -= zalihe[2];
                        zalihe[2] = 0;
                        if (p[i].jedinice > zalihe[0])
                        {
                            Console.WriteLine("nemoguce");
                            return;
                        }
                        p[i].o = p[i].jedinice;
                        zalihe[0] -= p[i].jedinice;
                    }
                    else
                    {
                        p[i].b = p[i].jedinice;
                        zalihe[2] -= p[i].jedinice;
                    }
                }
                
            }*/

            for (int i = 0; i < n; i++)
            {
                if(p[i].grupa == "AB")
                {
                    if(p[i].jedinice > zalihe[3])
                    {
                        p[i].ab = zalihe[3];
                        p[i].jedinice -= zalihe[3];
                        zalihe[3] = 0;
                        if(p[i].jedinice > zalihe[2])
                        {
                            p[i].b = zalihe[2];
                            p[i].jedinice -= zalihe[2];
                            zalihe[2] = 0;

                            if (p[i].jedinice > zalihe[1])
                            {
                                p[i].a = zalihe[1];
                                p[i].jedinice -= zalihe[1];
                                zalihe[1] = 0;
                                if (p[i].jedinice > zalihe[0])
                                {
                                    Console.WriteLine("nemoguce");
                                    return;
                                }
                                p[i].o = p[i].jedinice;
                                zalihe[0] -= p[i].jedinice;
                            }
                            else
                            {
                                p[i].a = p[i].jedinice;
                                zalihe[1] -= p[i].jedinice;
                            }
                        }
                        else
                        {
                            p[i].b = p[i].jedinice;
                            zalihe[2] -= p[i].jedinice;
                        }

                    }
                    else
                    {
                        p[i].ab = p[i].jedinice;
                        zalihe[3] -= p[i].jedinice;
                    }
                }
            }

            Console.WriteLine("moguce");
            for(int i = 0;i < n;i++)
            {
                Console.WriteLine(p[i].o + " " + p[i].a + " " + p[i].b + " " + p[i].ab);
            }
        }
    }