#include <iostream>
#include <cstring>
using namespace std;

struct pacijent{
	char kGrupa[2];
	int brojJedinica;
};
struct jedinice{
	int niz;
};
int main(int argc, char** argv) {
	pacijent p[10000];
	jedinice j[10000][4];
	int n;
	cin>>n;
	int zalihe[4];
	int potreba[4];
	char s[2];
	char s2[2];
	for(int i=0;i<4;i++)
	{
		cin>>zalihe[i];
	}
	for(int i=0;i<n;i++)
	{
		cin.ignore();
		gets(p[i].kGrupa);
		cin>>p[i].brojJedinica;
	}
	for(int i=0;i<n;i++)
	{
		potreba[i]=0;
	}
	for(int i=0;i<n;i++)
	{
		strcpy(s,p[i].kGrupa);
		if(strcmp(s,"O")==0)
		{
			potreba[0]=potreba[0]+p[i].brojJedinica;
		}
		if(strcmp(s,"A")==0)
		{
			potreba[1]=potreba[1]+p[i].brojJedinica;
		}
		if(strcmp(s,"B")==0)
		{
			potreba[2]=potreba[2]+p[i].brojJedinica;
		}
		if(strcmp(s,"AB")==0)
		{
			potreba[3]=potreba[3]+p[i].brojJedinica;
		}
	}	
	if(potreba[0]>zalihe[0] )
	{
		cout<<"nemoguce"<<endl;
	}
	else if(potreba[1]>(zalihe[1]+zalihe[0]-potreba[0])){
		cout<<"nemoguce"<<endl;
	}
	else if(potreba[2]>(zalihe[2]+zalihe[0]-potreba[0]-(zalihe[0]-potreba[0])))
	{
		cout<<"nemoguce"<<endl;
	}
	else if(potreba[3]>(zalihe[0]+zalihe[1]+zalihe[2]+zalihe[3]-potreba[0]-potreba[1]-potreba[2]))
	{
		cout<<"nemoguce"<<endl;
	}
	else{
		cout<<"moguce"<<endl;
		for(int i=0;i<n;i++)
		{
			strcpy(s2,p[i].kGrupa);
			
			if(strcmp(s2,"O")==0)
			{
				j[i][0].niz=p[i].brojJedinica;
				j[i][1].niz=0;
				j[i][2].niz=0;
				j[i][3].niz=0;
			}
			if(strcmp(s2,"A")==0)
			{
				
				if(zalihe[1]==0)
				{
					j[i][1].niz=0;
					j[i][0].niz=p[i].brojJedinica;
					zalihe[0]=zalihe[0]-p[i].brojJedinica;
				}
				else if(zalihe[1]-p[i].brojJedinica>=0)
				{
					j[i][1].niz=p[i].brojJedinica;
					zalihe[1]=zalihe[1]-p[i].brojJedinica;
				}
				else{
					j[i][1].niz=zalihe[1];
					zalihe[1]=0;
					j[i][0].niz=p[i].brojJedinica-zalihe[1];
					zalihe[0]=zalihe[0]-(p[i].brojJedinica-zalihe[1]);
				}
				j[i][2].niz=0;
				j[i][3].niz=0;
			}
			if(strcmp(s2,"B")==0)
			{
				if(zalihe[2]==0)
				{
					j[i][2].niz=0;
					j[i][0].niz=p[i].brojJedinica;
					zalihe[0]=zalihe[0]-p[i].brojJedinica;
				}
				else if(zalihe[2]-p[i].brojJedinica>=0)
				{
					j[i][2].niz=p[i].brojJedinica;
					zalihe[2]=zalihe[2]-p[i].brojJedinica;
				}
				else{
					j[i][2].niz=zalihe[2];
					zalihe[2]=0;
					j[i][0].niz=p[i].brojJedinica-zalihe[2];
					zalihe[0]=zalihe[0]-(p[i].brojJedinica-zalihe[2]);
				}
				j[i][1].niz=0;
				j[i][3].niz=0;
			}
			if(strcmp(s2,"AB")==0)
			{
				
				if(zalihe[0]==0)
				{
					j[i][0].niz=0;
				}
				if(zalihe[1]==0)
				{
					j[i][1].niz=0;
				}
				if(zalihe[2]==0)
				{
					j[i][2].niz=0;
				}
				if(zalihe[3]==0)
				{
					j[i][3].niz=0;
				}
				else if(zalihe[3]-p[i].brojJedinica>=0)
				{
					j[i][3].niz=p[i].brojJedinica;
					zalihe[3]=zalihe[3]-p[i].brojJedinica;
				}
				else{
					j[i][3].niz=zalihe[3];
					zalihe[3]=0;
					
        			if(j[i][0].niz+j[i][1].niz+j[i][2].niz+j[i][3].niz!=p[i].brojJedinica)
        			{
        				if(zalihe[0] > zalihe[1] && zalihe[0] > zalihe[2])
						{
							j[i][0].niz=p[i].brojJedinica-zalihe[3];
							zalihe[0]=zalihe[0]-p[i].brojJedinica-j[i][3].niz;	
						}
    					else if(zalihe[1] > zalihe[0] && zalihe[1] > zalihe[2])
        				{
        					j[i][1].niz=p[i].brojJedinica-zalihe[3];
        					zalihe[1]=zalihe[1]-p[i].brojJedinica-j[i][3].niz;
        				}
    
   						else if(zalihe[2] > zalihe[0] && zalihe[2] > zalihe[1])
   				 		{
   				 			j[i][2].niz=p[i].brojJedinica-j[i][3].niz;
   				 			zalihe[2]=zalihe[2]-p[i].brojJedinica-j[i][3].niz;
						}
						if(zalihe[0]==zalihe[1])
						{
							j[i][1].niz=p[i].brojJedinica-j[i][3].niz;
   				 			zalihe[1]=zalihe[1]-p[i].brojJedinica-j[i][3].niz;
						}
						else if(zalihe[1]==zalihe[2])
						{
							j[i][2].niz=p[i].brojJedinica-j[i][3].niz;
   				 			zalihe[2]=zalihe[1]-p[i].brojJedinica-j[i][3].niz;
						}
						else if(zalihe[0]==zalihe[2])
						{
							j[i][2].niz=p[i].brojJedinica-j[i][3].niz;
   				 			zalihe[2]=zalihe[1]-p[i].brojJedinica-j[i][3].niz;
						}
					}
				}
			}
		}
		for(int i=0;i<n;i++)
		{
			cout<<j[i][0].niz<<j[i][1].niz<<j[i][2].niz<<j[i][3].niz;
			cout<<endl;
		}
	}
	return 0;
}