using System;
using System.Diagnostics;
using System.Threading;
namespace TransfuzijaKrvi
{
    class Program
    {
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());

            var v = Console.ReadLine().Split();
            int o = int.Parse(v[0]);
            int a = int.Parse(v[1]);
            int b = int.Parse(v[2]);
            int ab = int.Parse(v[3]);

            int u = o + a + b + ab;

            bool mo = false;
            bool ma = false;

            int o1 = 0, a1 = 0, b1 = 0, ab1 = 0;

            for (int i = 0; i < n; i++)
            {
                var v1 = Console.ReadLine().Split();
                string k = v1[0];
                int j = int.Parse(v1[1]);
                if (j > u)
                {
                    break;
                }
                else if (k == "O")
                {
                    if (o - j >= 0) { o -= j; mo = true; o1 += j; }
                    else { mo = false; }
                }
                else
                {
                    if (k == "A")
                    {
                        if (a - j >= 0)
                        {
                            a -= j;
                            ma = true;
                            a1 += j;
                        }
                        else if (a + o - j >= 0)
                        {
                            o = o - (j - a);
                            o1 += (j - a);
                            a1 = j - o1;
                            a = 0;
                            ma = true;
                        }
                        else if (o - j >= 0) { o -= j; ma = true; o1 += j; }
                        else { ma = false; }
                    }
                }
                Console.WriteLine(o1 + " " + a1 + " " + b1 + " " + ab1);
                o1 = 0; a1 = 0; b1 = 0; ab1 = 0;
            }
            if (!mo && !ma)
            {
                Console.WriteLine("nemoguce");
            }
        }
    }
}