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

namespace ConsoleApplication21
{
    class Program
    {
         struct Pacijent
        {
            
            public string k;
            public int j;
        }
        static void Main(string[] args)
        {
            int n = int.Parse(Console.ReadLine());
            string[] s = Console.ReadLine().Split(' ');

            int[] krv=new int [4];
            krv[0] = int.Parse(s[0]);
            krv[1] = int.Parse(s[1]);
            krv[2] = int.Parse(s[2]);
            krv[3]= int.Parse(s[3]);

            int[,] resenje=new int[n,4];

            Pacijent[] p = new Pacijent[n];

            int o = 0; int a = 0; int b = 0; int ab = 0;
            for (int i = 0; i < n; i++)
            {
                string[] r = Console.ReadLine().Split(' ');
                p[i].k = r[0];
                p[i].j = int.Parse(r[1]);
                if (r[0] == "O") o += int.Parse(r[1]);
                if (r[0] == "A") a += int.Parse(r[1]);
                if (r[0] == "B") b += int.Parse(r[1]);
                if (r[0] == "AB") ab += int.Parse(r[1]);
            }
            bool moguce = true;

            if (krv[0] - o <0) moguce = false;
            else if (krv[1]+ krv[0]- a < 0) moguce=false;
            else if (krv[1]-a>=0 && krv[2]+krv[0]-b<0) moguce=false;
            else if(krv[1]+krv[0]-a +krv[2]-b<0) moguce=false;
            else if (krv[0] + krv[1] + krv[2] + krv[3] - ab < 0) moguce = false;

            Console.WriteLine(moguce);
            if(moguce)
            { 
                int i=0;
                while (i < 4)
                {
                    for (int t = 0; t < n; t++)
                    {
                        if(i==0 && p[t].k=="O")
                        {
                            krv[0]-=p[t].j;
                            resenje[t,0]=p[t].j;
                        }
                        if(i==1 && p[t].k=="A")
                        {
                            if(krv[1]-p[t].j>=0)
                            {
                                krv[1]-=p[t].j;
                                resenje[t,1]=p[t].j;
                            }
                            else
                            {
                                resenje[t,1]=krv[1];
                               
                                krv[0]=krv[0]+krv[1]-p[t].j;
                                krv[1]=0;
                                resenje[t,0]=krv[0];
                            }
                        }
                        if(i==2 && p[t].k=="B")
                        {
                            if(krv[2]-p[t].j>=0)
                            {
                                krv[2]-=p[t].j;
                                resenje[t,2]=p[t].j;
                            }
                            else
                            {
                                resenje[t,2]=krv[2];
                                krv[0]=krv[0]+krv[2]-p[t].j;
                                krv[2]=0;
                                resenje[t,0]=krv[0];
                            }
                        }
                        if (i == 3 && p[t].k == "AB")
                        { 
                            int m=0; 
                            while (p[t].j != 0)
                            {
                                if(krv[m]>0)
                                {
                                    if (krv[m] > 0 && krv[m] - p[t].j >= 0)
                                    {
                                        resenje[t, m] = p[t].j;
                                        krv[m] -= p[t].j;
                                        p[t].j = 0;
                                    }
                                    else if (krv[m] > 0)
                                    {
                                        resenje[t, m] = krv[m];
                                        p[t].j -= krv[m];
                                        krv[m] = 0;
                                    }
                                    else m++;
                                    
                                }
                                
                            }
                        }

                        
                    }
                    i++;
                }

            }
            
            for (a = 0; a < n; a++)
            {
                for (b = 0; b < 4; b++)
                {
                    Console.Write(resenje[a, b] + " ");
                }
                Console.WriteLine();
            }
            //Console.ReadLine();



            
        }
    }
}