#include <iostream>
#include <string>
#define MAXN 10005

using namespace std;

struct pacijent
{
	string krvna_grupa;
	int potrebna_kolicina;
	int grupa_O=0;
	int grupa_A=0;
	int grupa_B=0;
	int grupa_AB=0;
};

pacijent niz[MAXN];

int main()
{
	int n;
	cin>>n;
	int o,a,b,ab;
	cin>>o>>a>>b>>ab;
	bool moguce=true;
	for(int i=0;i<n;i++) 
	{
		cin>>niz[i].krvna_grupa>>niz[i].potrebna_kolicina;
		
		if(niz[i].krvna_grupa=="O")
		{
			if(o<niz[i].potrebna_kolicina) 
			{
				moguce=false;
				break;
			}
			else
			{
				o-=niz[i].potrebna_kolicina;
				niz[i].grupa_O+=niz[i].potrebna_kolicina;
			}
		}
	}
	for(int i=0;i<n;i++) 
	{
		if(niz[i].krvna_grupa=="A")
		{
			if((a+o)<niz[i].potrebna_kolicina) 
			{
				moguce=false;
				break;
			}
			else if(a>niz[i].potrebna_kolicina)
			{
				a-=niz[i].potrebna_kolicina;
				niz[i].grupa_A+=niz[i].potrebna_kolicina;
			}
			else if(a<niz[i].potrebna_kolicina)
			{
				
				niz[i].grupa_A+=a;
				niz[i].grupa_O+=niz[i].potrebna_kolicina-a;
				o-=niz[i].potrebna_kolicina-a;
				a=0;
			}
		}
		else if(niz[i].krvna_grupa=="B")
		{
			if((b+o)<niz[i].potrebna_kolicina) 
			{
				moguce=false;
				break;
			}
			else if(b>niz[i].potrebna_kolicina)
			{
				b-=niz[i].potrebna_kolicina;
				niz[i].grupa_B+=niz[i].potrebna_kolicina;
			}
			else if(b<niz[i].potrebna_kolicina)
			{
				
				niz[i].grupa_B+=b;
				niz[i].grupa_O+=niz[i].potrebna_kolicina-b;
				o-=niz[i].potrebna_kolicina-b;
				b=0;
			}
		}
	}
	for(int i=0;i<n;i++) 
	{
		if(niz[i].krvna_grupa=="AB")
		{
			if((o+a+b+ab)<niz[i].potrebna_kolicina) 
			{
				moguce=false;
				break;
			}
			else
			{
				if(o<niz[i].potrebna_kolicina && niz[i].potrebna_kolicina!=0) 
				{
					
					niz[i].potrebna_kolicina-=o;
					niz[i].grupa_O+=o;o=0;
				}
				else 
				{
					o-=niz[i].potrebna_kolicina;
					niz[i].grupa_O+=niz[i].potrebna_kolicina;
					niz[i].potrebna_kolicina=0;
				}
				if(a<niz[i].potrebna_kolicina && niz[i].potrebna_kolicina!=0) 
				{
					
					niz[i].potrebna_kolicina-=a;
					niz[i].grupa_A+=a;
					a=0;
				}
				else 
				{
					a-=niz[i].potrebna_kolicina;
					niz[i].grupa_A+=niz[i].potrebna_kolicina;
					niz[i].potrebna_kolicina=0;
				}
				if(b<niz[i].potrebna_kolicina && niz[i].potrebna_kolicina!=0) 
				{
					
					niz[i].potrebna_kolicina-=b;
					niz[i].grupa_B+=b;
					b=0;
				}
				else 
				{
					b-=niz[i].potrebna_kolicina;
					niz[i].grupa_B+=niz[i].potrebna_kolicina;
					niz[i].potrebna_kolicina=0;
				}
				if(ab<niz[i].potrebna_kolicina && niz[i].potrebna_kolicina!=0) 
				{
					
					niz[i].potrebna_kolicina-=ab;
					niz[i].grupa_AB+=ab;
					ab=0;
				}
				else 
				{
					ab-=niz[i].potrebna_kolicina;
					niz[i].grupa_AB+=niz[i].potrebna_kolicina;
					niz[i].potrebna_kolicina=0;
				}
			}
		}
	}
	if(moguce)
	{
		cout<<"moguce"<<endl;
		for(int i=0;i<n;i++) cout<<niz[i].grupa_O<<" "<<niz[i].grupa_A<<" "<<niz[i].grupa_B<<" "<<niz[i].grupa_AB<<endl;
	}
	else
	{
		cout<<"nemoguce";
	}
	return 0;
}