#include<bits/stdc++.h>
#define ll long long
using namespace std;
struct slog{
   ll n,a,b,ab,pot;
   string tip;
} niz[10005];
ll N,nul,a,b,ab,dao;
int main(){
   cin>>N;
   cin>>nul>>a>>b>>ab;
   for(int i=1;i<=N;i++)
      cin>>niz[i].tip>>niz[i].pot;
   for(int i=1;i<=N;i++){
      if(niz[i].tip!="O")
         continue;
      niz[i].n=niz[i].pot;
      nul-=niz[i].pot;
      niz[i].pot=0;
   }
   for(int i=1;i<=N;i++){
      if(niz[i].tip!="A")
         continue;
      dao=min(niz[i].pot,a);
      niz[i].a=dao;
      niz[i].pot-=dao;
      a-=dao;

      niz[i].n=niz[i].pot;
      nul-=niz[i].pot;
      niz[i].pot=0;
   }
   for(int i=1;i<=N;i++){
      if(niz[i].tip!="B")
         continue;
      dao=min(niz[i].pot,b);
      niz[i].b=dao;
      niz[i].pot-=dao;
      b-=dao;

      niz[i].n=niz[i].pot;
      nul-=niz[i].pot;
      niz[i].pot=0;
   }
   for(int i=1;i<=N;i++){
      if(niz[i].tip!="AB")
         continue;
      dao=min(niz[i].pot,ab);
      niz[i].ab=dao;
      niz[i].pot-=dao;
      ab-=dao;

      dao=min(niz[i].pot,b);
      niz[i].b=dao;
      niz[i].pot-=dao;
      b-=dao;

      dao=min(niz[i].pot,a);
      niz[i].a=dao;
      niz[i].pot-=dao;
      a-=dao;

      niz[i].n=niz[i].pot;
      nul-=niz[i].pot;
      niz[i].pot=0;
   }
   if(nul<0){
      cout<<"nemoguce"<<endl;
      return 0;
   }
   cout<<"moguce"<<endl;
   for(int i=1;i<=N;i++)
      cout<<niz[i].n<<" "<<niz[i].a<<" "<<niz[i].b<<" "<<niz[i].ab<<endl;
   return 0;
}