#include <iostream>
#include <cmath>
using namespace std; 
struct grupa {
	string s;
	int k;
	int A;
	int B;
	int O;
	int AB;
	
};
int main ()
{
	int n;
	bool tau= true;
	cin>>n;
	grupa g[n];																											
	int o, a, b, ab;
	cin>>o>>a>>b>>ab;
	for (int i = 0; i<n; i++)
	{
		cin>>g[i].s>>g[i].k;
		g[i].A = 0;
		g[i].B = 0;
		g[i].O = 0;
		g[i].AB = 0;
		
		if(g[i].s == "O") 
		{
			if(g[i].k>o)
			{tau = false;
			}
			else {
				o -=g[i].k;
				g[i].O=g[i].k;
			}
		}
		
		else if (g[i].s =="A") 
		{
			if(a>=g[i].k)
			{
				a-=g[i].k;
				g[i].A +=g[i].k;
				g[i].k = 0;
			}
			else 
			{
				g[i].k -=a;
				g[i].A += a;
				a = 0;
			}
			if(o>=g[i].k)
			{
				o-=g[i].k;
				g[i].O += g[i].k;
			}
			else tau = false;
		}
		
		else if (g[i].s =="B") 
		{
			if(b>=g[i].k)
			{
				b-=g[i].k;
				g[i].B +=g[i].k;
				g[i].k = 0;
			}
			else 
			{
				g[i].k -=b;
				g[i].B += b;
				b = 0;
			}
			if(o>=g[i].k)
			{
				o-=g[i].k;
				g[i].O += g[i].k;
			}
			else tau = false;
		}
		// za AB
		else 
		{  //PRIMA AB
			if (ab>=g[i].k)
			{
				g[i].AB -= g[i].k;
				ab -= g[i].k;
				g[i].k=0;
			}
				else 
			{
				g[i].k -=ab;
				g[i].AB += ab;
				ab = 0;
			}
			//prima B
			if(b>=g[i].k)
			{
				b-=g[i].k;
				g[i].B +=g[i].k;
				g[i].k = 0;
			}
			else 
			{
				g[i].k -=b;
				g[i].B += b;
				b = 0;
			}
		 	//prima A
		   	if(a>=g[i].k)
			{
				a-=g[i].k;
				g[i].A +=g[i].k;
				g[i].k = 0;
			}
			else 
			{
				g[i].k -=a;
				g[i].A += a;
				a = 0;
			}
			//prima O
			if(o>=g[i].k)
			{
				o-=g[i].k;
				g[i].O += g[i].k;
				g[i].k = 0;
			}
		
			else {
			tau = false;
		}
		}

	}
	if(tau = false) cout<<"nemoguce";
	else 
	{
		cout<<"moguce"<<endl;
		for (int i = 0; i<n; i++)
		{
			cout<<g[i].O<<" "<<g[i].A<< " "<<g[i].B<<" "<<g[i].AB<<endl;
		}
	}
	
	
	return 0;
}