#include<bits/stdc++.h>
using namespace std;
int N,O,A,B,AB,d0,d1,d2,d3;
int Sol[10009][9];
string tip;
struct slog{
	int tip,d,id;
}P[10009],p;
bool cmptip(slog a,slog b){
	return a.tip<b.tip;
}
bool cmpid(slog a,slog b){
	return a.id<b.id;
}
int main(){
	cin>>N>>O>>A>>B>>AB;
	for(int i=1; i<=N; i++){
		cin>>tip>>P[i].d;
		P[i].id=i;
		if(tip=="O" )P[i].tip=0;
		if(tip=="A" )P[i].tip=1;
		if(tip=="B" )P[i].tip=2;
		if(tip=="AB")P[i].tip=3;
	}
	sort(P+1,P+1+N,cmptip);
	for(int i=1; i<=N; i++){
		d0=d1=d2=d3=0;
		p=P[i];
		if(p.tip==0)d0=p.d;
		if(p.tip==1){
			d1=min(A,p.d);
			d0=p.d-d1;
		}
		if(p.tip==2){
			d2=min(B,p.d);
			d0=p.d-d2;
		}
		if(p.tip==3){
			d3=min(AB,p.d);
			d2=min(B ,p.d-d3);
			d1=min(A ,p.d-d3-d2);
			d0=p.d-d3-d2-d1;
		}
		Sol[p.id][0]=d0;
		Sol[p.id][1]=d1;
		Sol[p.id][2]=d2;
		Sol[p.id][3]=d3;
		O -=d0;
		A -=d1;
		B -=d2;
		AB-=d3;
		if(O<0){
			cout<<"nemoguce"<<endl;
			return 0;
		}
	}
	sort(P+1,P+1+N,cmpid);
	cout<<"moguce"<<endl;
	for(int i=1; i<=N; i++){
		for(int j=0; j<4; j++)cout<<Sol[i][j]<<" ";
		cout<<endl;
	}
	return 0;
}