#include <bits/stdc++.h>
using namespace std;

int id(string const& s)
{
	if(s=="O") return 0;
	if (s=="A") return 1;
	if (s=="B") return 2;
	if (s=="AB") return 3;
}


int main(int argc, char** argv) {
	long long N,O,A,B,AB,P;
	string s;
	cin>>N;
	cin>>O>>A>>B>>AB;
	vector<long long> zaliha;
	zaliha.push_back(O);
	zaliha.push_back(A);
	zaliha.push_back(B);
	zaliha.push_back(AB);

	vector<string> pacijenti; 
	for (long long i=0;i<N;i++)
	{
		cin>>s>>P;
		if (id(s)==0){
			if (zaliha[0]<P) {
				cout<<"nemoguce";
				return 0;
			}
		}
		else if (zaliha[id(s)]>=P) 
		{
			switch(id(s))
			{
				case 0:
					pacijenti.push_back(to_string(P)+" 0 0 0");
					break;
				case 1:
					pacijenti.push_back("0 "+to_string(P)+" 0 0");
					break;
				case 2:
					pacijenti.push_back("0 0 "+to_string(P)+" 0");
					break;
				case 3:
					pacijenti.push_back("0 0 0 "+to_string(P));
					break;
			}
			zaliha[id(s)]-=P;	
		} 
		
		
		else if (zaliha[id(s)]+zaliha[0]>=P) 
		{
			switch(id(s))
			{
				case 1:
					pacijenti.push_back(to_string(P-zaliha[1])+" "+to_string(zaliha[1])+" 0 0");
					zaliha[0]-=P-zaliha[1];
			zaliha[id(s)]=0;
					break;
				case 2:
					pacijenti.push_back(to_string(P-zaliha[2])+" 0 "+to_string(zaliha[2])+" 0");
					zaliha[0]-=P-zaliha[2];
			zaliha[id(s)]=0;
					break;
				
				case 3:	
					if (zaliha[1]>zaliha[2]) 
					{
						if (zaliha[1]+zaliha[3]>=P)
						{
						pacijenti.push_back("0 "+to_string(P-zaliha[3])+" 0 "+to_string(zaliha[3]));
						zaliha[1]-=P-zaliha[3];
						zaliha[3]=0;}
						else if (zaliha[1]+zaliha[3]+zaliha[2]>=P)
						{
							pacijenti.push_back("0 "+to_string(P-zaliha[3]-zaliha[2])+" "+to_string(zaliha[2])+" "+to_string(zaliha[3]));
							zaliha[1]-=P-zaliha[3]-zaliha[2];
							zaliha[2]=0;
							zaliha[3]=0;
						}
						else if (zaliha[0]+zaliha[1]+zaliha[3]+zaliha[2]>=P)
						{
							pacijenti.push_back(to_string(P-zaliha[3]-zaliha[1]-zaliha[2])+" "+to_string(zaliha[1])+" "+to_string(zaliha[2])+" "+to_string(zaliha[3]));
							zaliha[0]-=P-zaliha[3]-zaliha[1]-zaliha[2];
							zaliha[1]=0;
							zaliha[2]=0;
							zaliha[3]=0;
						}
						else if (zaliha[0]+zaliha[1]+zaliha[3]+zaliha[2]<P)
						{
							cout<<"nemoguce";
							return 0;
						}
					}
					else if (zaliha[2]>=zaliha[1])
					{
						if (zaliha[2]+zaliha[3]>=P)
						{
						pacijenti.push_back("0 0 "+to_string(P-zaliha[3])+" "+to_string(zaliha[3]));
						zaliha[2]-=P-zaliha[3];
						zaliha[3]=0;}
						else if (zaliha[1]+zaliha[3]+zaliha[2]>=P)
						{
							pacijenti.push_back("0 "+to_string(P-zaliha[3]-zaliha[2])+" "+to_string(zaliha[2])+" "+to_string(zaliha[3]));
													
							zaliha[1]-=P-zaliha[3]-zaliha[2];
							zaliha[2]=0;
							zaliha[3]=0;
						}
						else if (zaliha[0]+zaliha[1]+zaliha[3]+zaliha[2]>=P)
						{
							pacijenti.push_back(to_string(P-zaliha[3]-zaliha[1]-zaliha[2])+" "+to_string(zaliha[1])+" "+to_string(zaliha[2])+" "+to_string(zaliha[3]));
							
							zaliha[0]-=P-zaliha[3]-zaliha[1]-zaliha[2];
							zaliha[1]=0;
							zaliha[2]=0;
							zaliha[3]=0;
						}
						else if (zaliha[0]+zaliha[1]+zaliha[3]+zaliha[2]<P)
						{
							cout<<"nemoguce";
							return 0;
						}
					}	
					break;
				
			}
			
			
		}
		else if ((zaliha[id(s)]+zaliha[0]<P)&&id(s)!=3)
		{
			cout<<"nemoguce";
			return 0;
		}
		
		
	}
	cout<<"moguce"<<endl;
	for (int i=0;i<pacijenti.size();i++)cout<<pacijenti[i]<<endl;
	
	return 0;
}