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


namespace zadatak2
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = Convert.ToInt32(Console.ReadLine());
            String a = Convert.ToString(Console.ReadLine());
            int O = Convert.ToInt32(Convert.ToString(a[0]));
            int A = Convert.ToInt32(Convert.ToString(a[2]));
            int B = Convert.ToInt32(Convert.ToString(a[4]));
            int AB = Convert.ToInt32(Convert.ToString(a[6]));
            String[] potroseno = new String[n];
            String[] rezultati = new String[n];
            for (int i = 0;i < n;i++)
            {
                String pacijent = Convert.ToString(Console.ReadLine());
                int p = pacijent.IndexOf(" ");
                String grupa = pacijent.Substring(0, p);
                int jedinice = Convert.ToInt32(pacijent.Substring(p+1));
                switch(grupa)
                {
                    case "O":
                        if (jedinice > O)
                        {
                            rezultati[i] = "nemoguce";
                            
                        }
                        else
                        {
                            rezultati[i] = "moguce";
                            int O1 = jedinice - O;
                            O -= jedinice;
                            potroseno[i] = O1.ToString() + " 0 0 0";
                        }
                        break;
                    case "A":
                        if (jedinice > O + A)
                        {
                            rezultati[i] = "nemoguce";

                        }
                        else 
                        {
                            rezultati[i] = "moguce";
                            if (jedinice > A && A != 0)
                            {
                                int A1 = jedinice - A;
                                int jedinice1 = jedinice - A;
                                A -= jedinice;
                                int O1 = jedinice - O;
                                O -= jedinice1;
                                potroseno[i] = O1.ToString() + " " + A1.ToString() + " 0 0";
                            }
                            else if (A == 0)
                            {
                                int O1 = jedinice - O;
                                O -= jedinice;
                                potroseno[i] = O1.ToString() +" 0 0 0";
                            }
                            else
                            {
                                int A1 = jedinice - A;
                                A -= jedinice;
                                potroseno[i] = "0 "+ A1.ToString() + " 0 0";
                            }
                            
                        }
                        break;
                    case "B":
                        if (jedinice > O + B)
                        {
                            rezultati[i] = "nemoguce";

                        }
                        else
                        {
                            rezultati[i] = "moguce";
                            if (jedinice > B && B != 0)
                            {
                                int B1 = jedinice - B;
                                int jedinice1 = jedinice - B;
                                B -= jedinice;
                                int O1 = jedinice - O;
                                O -= jedinice1;
                                potroseno[i] = O1.ToString() + " 0 " +B1.ToString() + " 0";
                            }
                            else if (B == 0)
                            {
                                int O1 = jedinice - O;
                                O -= jedinice;
                                potroseno[i] = O1.ToString() + " 0 0 0";
                            }
                            else
                            {
                                int B1 = jedinice - B;
                                B -= jedinice;
                                potroseno[i] = "0 0 " + B1.ToString() + " 0";
                            }
                        }
                            break;
                    case "AB":
                        if (jedinice > O + B + A + AB)
                        {
                            rezultati[i] = "nemoguce";


                        }
                        else
                        {
                            rezultati[i] = "moguce";
                            if (jedinice > AB && AB != 0)
                            {
                                int AB1 = jedinice - AB;
                                int jedinice1 = jedinice - AB;
                                AB -= jedinice;

                                if (jedinice1 > B && B != 0)
                                {
                                    int B1 = jedinice - O;
                                    int jedinice2 = jedinice1 - B;
                                    B -= jedinice1;
                                    if (jedinice2 > A && A != 0)
                                    {
                                        int A1 = jedinice - O;
                                        int jedinice3 = jedinice2 - A;
                                        A -= jedinice2;
                                        int O1 = jedinice - O;
                                        int jedinice4 = jedinice3 - O;
                                        O -= jedinice3;
                                        potroseno[i] = O1.ToString()+" " + A1.ToString() + " " + B1.ToString() + " " + AB1.ToString();

                                    }
                                    else if (A == 0)
                                    {
                                        int O1 = jedinice - O;
                                        O -= jedinice;
                                        potroseno[i] = O1.ToString() + " 0 0 0";
                                    }
                                    else
                                    {
                                        int A1 = jedinice - A;
                                        A -= jedinice1;
                                        potroseno[i] = "0 " + A1.ToString()+" "  + B1.ToString() +" "+ AB1.ToString();
                                    }
                                    potroseno[i] = "0 0 " + B1.ToString() + " " + AB1.ToString();
                                }
                                else if (B == 0)
                                {
                                    if (jedinice1 > A && A != 0)
                                    {
                                        int A1 = jedinice - A;
                                        int jedinice3 = jedinice1 - A;
                                        A -= jedinice1;
                                        int O1 = jedinice - O;
                                        int jedinice4 = jedinice3 - O;
                                        O -= jedinice3;
                                        potroseno[i] = O1.ToString() + " " + A1.ToString() + " 0 " + AB1.ToString();

                                    }
                                    else if (A == 0)
                                    {
                                        int O1 = jedinice - O;
                                        O -= jedinice;
                                        potroseno[i] = O1.ToString() + " 0 0 0";
                                    }
                                    else
                                    {
                                        int A1 = jedinice - A;
                                        A -= jedinice1;
                                        potroseno[i] = "0 " + A1.ToString() + " 0 " + AB1.ToString();
                                    }
                                    potroseno[i] = "0 0 0 " + AB1.ToString();
                                    
                                }
                                else
                                {
                                    int B1 = jedinice - B;
                                    B -= jedinice1;
                                    potroseno[i] = "0 0 " + B1.ToString() + " 0";
                                }
                                potroseno[i] = "0 0 0 " + AB1.ToString();

                            }
                            else if (AB == 0)
                            {

                                if (jedinice > B && B != 0)
                                {
                                    int B1 = jedinice - B;
                                    int jedinice2 = jedinice - B;
                                    B -= jedinice;
                                    if (jedinice2 > A && A != 0)
                                    {
                                        int A1 = jedinice - A;
                                        int jedinice3 = jedinice2 - A;
                                        A -= jedinice2;
                                        int O1 = jedinice - O;
                                        int jedinice4 = jedinice3 - O;
                                        O -= jedinice3;
                                        potroseno[i] = O1.ToString() + " " + A1.ToString() + " " + B1.ToString() + " 0";

                                    }
                                    else if (A == 0)
                                    {
                                        int O1 = jedinice - O;
                                        O -= jedinice;
                                        potroseno[i] = O1.ToString() + " 0 0 0";
                                    }
                                    else
                                    {
                                        int A1 = jedinice - A;
                                        A -= jedinice;
                                        potroseno[i] = "0 " + A1.ToString() + " " + B1.ToString() + " 0";
                                    }
                                    potroseno[i] = "0 0 " + B1.ToString() + " 0";
                                }
                                else if (B == 0)
                                {
                                    if (jedinice > A && A != 0)
                                    {
                                        int A1 = jedinice - A;
                                        int jedinice3 = jedinice - A;
                                        A -= jedinice;
                                        int O1 = jedinice - O;
                                        int jedinice4 = jedinice3 - O;
                                        O -= jedinice3;
                                        potroseno[i] = O1.ToString() + " " + A1.ToString() + " 0 0";

                                    }
                                    else if (A == 0)
                                    {
                                        int O1 = jedinice - O;
                                        O -= jedinice;
                                        potroseno[i] = O1.ToString() + " 0 0 0";
                                    }
                                    else
                                    {
                                        int A1 = jedinice - A;
                                        A -= jedinice;
                                        potroseno[i] = "0 " + A1.ToString() + " 0 0";
                                    }
                                    

                                }
                                else
                                {
                                    int B1 = jedinice - B;
                                    B -= jedinice;
                                    potroseno[i] = "0 0 " + B1.ToString() + " 0";
                                }
                                

                            }
                            else
                            {
                                int AB1 = jedinice - AB;
                                AB -= jedinice;
                                potroseno[i] = "0 0 0 " + AB1.ToString();
                            }
                        }
                        break;


                }
                
            }
            if (rezultati.Contains("nemoguce"))
            {
                Console.WriteLine("nemoguce");
                return;
            }
            for (int j = 0; j < potroseno.Length; j++) 
            {
                
                Console.WriteLine(rezultati[j]);
                Console.WriteLine(potroseno[j]);
            }
        }
    }
}