#include <iostream>
#include <cmath>
using namespace std;
int main() {
  int broj, oz, az, bz, abz, k1, uz;
  bool gres;
  cin >> broj;
  cin >> oz >> az >> bz >> abz;
  string grupe[broj];
  int doze[broj];
  int odoze[broj];
  int adoze[broj];
  int bdoze[broj];
  int abdoze[broj];
  k1 = 0;
  do
  {
   cin >> grupe[k1];
   cin >> doze [k1];
   k1++; 
  }
  while (k1<broj);

  do
  {
   uz += doze[k1];
   odoze[k1] = 0;
   adoze[k1] = 0;
   bdoze[k1] = 0;
   abdoze[k1] = 0;
   k1++;
  }
  while (k1<broj);
  
  cout << adoze[1] << endl;
  if (uz < (oz + az + bz + abz)) cout << "nemoguce";
  else 
  {
   k1=0;
   // o grupa
   do
   {
   if (grupe[k1] == "o")
    {
    oz -= doze[k1];
    odoze[k1] = doze [k1];
    }
   k1++;
   }
   while (k1<broj);
   //a grupa
   k1=0;
   gres = true;

   do
   {
    if (grupe[k1] == "a")
    {
     if(az>=doze[k1])
     {
     az -= doze[k1];
     adoze[k1] = doze [k1];
     }
     else gres = false;
    }
   k1++;
   }
   while (k1<broj && gres);
   k1--;
   adoze[k1] = az;
   doze[k1] -= az;
   // preostale a vrtim kao o
   do
   {
   if (grupe[k1] == "a")
    {
    oz -= doze[k1];
    odoze[k1] = doze [k1];
    }
   k1++;
   }
   while (k1<broj);
   
   //bgrupa
     k1=0;
     gres = true;

   do
   {
    if (grupe[k1] == "b")
    {
     if(bz>=doze[k1])
     {
     bz -= doze[k1];
     bdoze[k1] = doze [k1];
     }
     else gres = false;
    }
   k1++;
   }
   while (k1<broj && gres);
   k1--;
   bdoze[k1] = bz;
   doze[k1] -= bz;
   // preostale a vrtim kao o
   do
   {
   if (grupe[k1] == "b")
    {
    oz -= doze[k1];
    odoze[k1] = doze [k1];
    }
   k1++;
   }
   while (k1<broj);
    //ab grupa
   k1=0;
   gres = true;
   //b grupom ab ljude
   do
   {
    if (grupe[k1] == "ab")
    {
     if(bz>=doze[k1])
     {
     bz -= doze[k1];
     bdoze[k1] = doze [k1];
     }
     else gres = false;
    }
   k1++;
   }
   while (k1<broj && gres);
   k1--;

   bdoze[k1] = bz;
   doze[k1] -= bz;
   //a grupom ab ljude
   gres = true;
   if (doze[k1]>az) 
    {
     doze [k1] -=az; 
     adoze [k1] = az; 
    }
   else
   {
     do
     {
      if (grupe[k1] == "ab")
      {
       if(az>=doze[k1])
       {
       az -= doze[k1];
       adoze[k1] = doze [k1];
       }
       else gres = false;
      }
     k1++;
     }
     while (k1<broj && gres);
     k1--;

     adoze[k1] = az;
     doze[k1] -= az;
   }
   //o grupom ab ljude
   gres = true;
   if (doze[k1]>oz) 
    {
     doze [k1] -=oz; 
     odoze [k1] = oz; 
    }
   else
   {
     do
     {
      if (grupe[k1] == "ab")
      {
       if(oz>=doze[k1])
       {
       oz -= doze[k1];
       odoze[k1] = doze [k1];
       }
       else gres = false;
      }
     k1++;
     }
     while (k1<broj && gres);
     k1--;

     odoze[k1] = oz;
     doze[k1] -= oz;
   }
   //ab grupom ab ljude
   //ako ovo neko ;ita, da ynate da sam patio
   do
     {
      if (grupe[k1] == "ab")
      {
       abz -= doze[k1];
       abdoze[k1] = doze [k1];       
      }
     k1++;
     }
     while (k1<broj);
   if (abz<0||oz<0) cout << "nemoguce";
   else
   {
     k1 = 0;
     cout << "moguce" << endl;
     do
     {
     cout << odoze[k1] << " " <<adoze[k1]<< " "<< bdoze[k1] <<" " << abdoze[k1] <<endl;
     k1++;
     }
     while (k1<broj);
   }
   
  }
  return 0;
}