using System;
namespace ConsoleApp1
{
    class Program
    {

        static void Main()
        {
            int n = int.Parse(Console.ReadLine());
            string[] split = Console.ReadLine().Split();
            int[] aa= new int[4];
            string[] potrebnagrupa = new string[n];  
            int[] potrebnakolicina = new int[n];  
          
            int[,] bb = new int[4, n];
            
            Boolean uspeh = true;
            for(int i = 0; i < 4; i++)
            {
                aa[i] = int.Parse(split[i]);
            }
            for(
             int i = 0; i < n; i++)
            {
                string[] split1 = Console.ReadLine().Split();
                potrebnagrupa[i] = split1[0];
                potrebnakolicina[i] = int.Parse(split1[1]);
            }
            for (int i = 0; i < n; i++)
            {
                if (potrebnagrupa[i] == "O")
                {
                    if (aa[0] >= potrebnakolicina[i])
                    {
                        bb[0, i] = potrebnakolicina[i];
                        aa[0] -= potrebnakolicina[i];
                        potrebnakolicina[i] = 0;
                    }
                    if (potrebnakolicina[i] > 0)
                    {
                        uspeh = false;
                        break;
                    }
                }
            }
            for (int i = 0; i < n; i++)
            {
                if (potrebnagrupa[i] == "A")
                {
                    if ((aa[1] > 0 || aa[0]>0 ) && potrebnakolicina[i]>0)
                    {
                        bb[1, i] = Math.Min(aa[1], potrebnakolicina[i]);
                        potrebnakolicina[i] -= bb[1, i];
                        aa[1] -= bb[1, i];
                        if (potrebnakolicina[i] > 0 && potrebnakolicina[i] <= aa[0])
                        {
                            bb[0, i] = potrebnakolicina[i];
                            aa[0] -= potrebnakolicina[i];
                            potrebnakolicina[i] = 0;
                        }
                        
                    }
                    if (potrebnakolicina[i] > 0)
                    {
                        uspeh = false;
                        break;
                    }
                }
            }
            for (int i = 0; i < n; i++)
            {
                if (potrebnagrupa[i] == "B")
                {
                    if ((aa[2] > 0 || aa[0] > 0) && potrebnakolicina[i] > 0)
                    {
                        bb[2, i] = Math.Min(aa[2], potrebnakolicina[i]);
                        potrebnakolicina[i] -= bb[2, i];
                        aa[2] -= bb[2, i];
                        if (potrebnakolicina[i] > 0 && potrebnakolicina[i] <= aa[0])
                        {
                            bb[0, i] = potrebnakolicina[i];
                            aa[0] -= potrebnakolicina[i];
                            potrebnakolicina[i] = 0;
                        }
                        
                    }
                    if (potrebnakolicina[i] > 0)
                    {
                        uspeh = false;
                        break;
                    }
                }
            }
            for (int i = 0; i < n; i++)
            {
                if (potrebnagrupa[i] == "AB")
                {
                    if ((aa[3] > 0 || aa[2] > 0 || aa[1] > 0 || aa[0] > 0) && potrebnakolicina[i] > 0)
                    {
                        bb[3, i] = Math.Min(aa[3], potrebnakolicina[i]);
                        potrebnakolicina[i] -= bb[3, i];
                        aa[3] -= bb[3, i];
                        if (potrebnakolicina[i] > 0)
                        {
                            bb[2, i] = Math.Min(potrebnakolicina[i], aa[2]);
                            aa[2] -= bb[2, i];
                            potrebnakolicina[i] -= bb[2, i];
                        }
                        if (potrebnakolicina[i] > 0)
                        {
                            bb[1, i] = Math.Min(potrebnakolicina[i], aa[1]);
                            aa[1] -= bb[1, i];
                            potrebnakolicina[i] -= bb[1, i];
                        }
                        if (potrebnakolicina[i] > 0)
                        {
                            bb[0, i] = Math.Min(potrebnakolicina[i], aa[0]);
                            aa[0] -= bb[0, i];
                            potrebnakolicina[i] -= bb[0, i];
                        }
                    }                    }
                    if (potrebnakolicina[i] > 0)
                    {
                        uspeh = false;
                        break;
                    }
                }
            if (uspeh)
            {
                Console.WriteLine("Moguce");

                for (int i = 0; i < n; i++)
                {
                    for (int j = 0; j < 4; j++)
                        Console.Write(bb[j, i] + " ");
                    Console.WriteLine();
                }
            }
            else Console.WriteLine("nemoguce");
        }
            
        }
    }