#include<iostream>

using namespace std;

void FICA()
{
  int N; // broj pacijenata
  cin>>N;
  int o,a,b,ab; //kolko imam
  int otreba = 0,atreba = 0,btreba = 0,abtreba = 0; //kolko mi treba
  cin>>o>>a>>b>>ab;
  string krvnagrupa;
  int n;
  int niz[N]; // jedinice krvi potrebne pacijentu
  string krvnagrupaniz[N]; // krvna grupa pacijenta

  if(N == 0){
   // cout<<"nemoguce"<<endl;
    return;
  }

  for(int i=0;i<N;++i){

    cin>>krvnagrupa>>n;

    if(krvnagrupa == "O"){
        otreba += n;
    }else if(krvnagrupa == "A"){
        atreba += n;
    }else if(krvnagrupa == "B"){
        btreba += n;
    }else if(krvnagrupa == "AB"){
        abtreba +=n;
    }

    krvnagrupaniz[i] = krvnagrupa;
    niz[i] = n;

  }

  int o1 = o, a1 = a, b1 = b, ab1 = ab;

  if(otreba > o1){

    cout<<"nemoguce"<<endl;
    return;

  }else {

      o1 -= otreba;

      //aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

      if(atreba > a1){

        if(atreba - a1 > o1){
            cout<<"nemoguce"<<endl;
            return;
        }

        else{
            o1 -= (atreba - a1);
            a1 = 0;
        }

      } else {

        a1 -= atreba;

      }

      //aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

      //bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

      if(btreba > b1){
        if(btreba - b1 > o1){
               cout<<"nemoguce"<<endl;
            return;
        }else{

        o1 -= (btreba - b1);
        b1 = 0;

        }
      }else{

        b1 -= btreba;

      }

      //bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb

      //abeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

      if(abtreba > o1 + a1 + b1 + ab1){

         cout<<"nemoguce"<<endl;
            return;

      }

      //abeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

      }


    cout<<"moguce"<<endl;

    for(int i=0;i<N;++i)
    {
        if(krvnagrupaniz[i] == "O"){
            o -= niz[i];
            otreba -= niz[i];
            cout<<niz[i]<<" 0 "<<"0 "<<"0"<<endl;

        }else
        if(krvnagrupaniz[i] == "A"){
            if(niz[i] > a){

                cout<<niz[i]-a<<" "<<a<<" 0"<<" 0"<<endl;
                o -= (niz[i]-a);
                a = 0;
                atreba -= niz[i];

            }else{

            cout<<"0 "<<niz[i]<<" 0"<<" 0"<<endl;
            a -= niz[i];
            atreba -= niz[i];

            }
        }else
        if(krvnagrupaniz[i] == "B"){

            if(niz[i] > b){

                cout<<niz[i]-b<<" 0 "<<b<<" 0"<<endl;
                o -= (niz[i]-b);
                b = 0;
                btreba -= niz[i];

            }else{


            cout<<"0 "<<"0 "<<niz[i]<<" 0"<<endl;
            b -= niz[i];
            btreba -= niz[i];

            }
        }else {

        if(ab >= niz[i]){

            cout<<"0 "<<"0 "<<"0 "<<niz[i]<<endl;
            ab -= niz[i];

        }else{

        if(a > atreba){
            if((a - atreba) >= niz[i] - ab){
                cout<<"0 "<<niz[i] - ab<<" 0 "<<ab<<endl;
                a -= (niz[i] - ab);
                ab = 0;
            }else{

                if(b > btreba){

                if((b - btreba) >= niz[i] - ab - (a - atreba)){

                    cout<<"0 "<<a-atreba<<" "<<niz[i] - ab - (a - atreba)<<" "<<ab<<endl;
                b -= (niz[i] - ab - (a - atreba));
                a -= (a-atreba);
                ab = 0;

                }else{

                cout<<niz[i] - ((a-atreba) + (b-btreba) + ab)<<" "<<a-atreba<<" "<<b-btreba<<" "<<ab<<endl;
                a -= (a-atreba);
                b -= (b-btreba);
                o -= (niz[i] - ((a-atreba) + (b-btreba) + ab));
                ab = 0;

                }
                }else{

                cout<<niz[i] - (a-atreba) - ab<<" "<<a-atreba<<" 0 "<<ab<<endl;
                o -= niz[i] - (a-atreba) - ab;
                a -= (a-atreba);
                ab = 0;
                }

            }
        }else{

        if(b > btreba){

            if(b - btreba >= niz[i] - ab){
                cout<<"0 "<<"0 "<<niz[i] - ab<<" "<<ab<<endl;
                b -= (niz[i] - ab);
                ab = 0;
            }else{

            cout<<niz[i] - ab - (b - btreba)<<" 0 "<<b - btreba<<" "<<ab<<endl;
            o -= (niz[i] - ab - (b - btreba));
            b -= (b - btreba);
            ab = 0;

            }
        }else{

        cout<<niz[i]-ab<<" 0 "<<"0 "<<ab<<endl;

        }

        }

        }

        }
    }

}

int main(void)
{
    FICA();
    return 0;
}