#include<stdio.h>
#include<string.h>
long long O[10001],A[10001],B[10001],AB[10001];
main()
{
	long long br;
	int rez1,rez2,rez3,rez4;
	long long Oz, Az, Bz, ABz;
	int prekid=0;
	char S1[2];
	long N,i;
//	printf("unesi n\n");
	scanf("%ld", &N);
//	printf("unesite vrednosti zaliha\n");
	scanf("%lld%lld%lld%lld", &Oz, &Az, &Bz, &ABz);
	for(i=0;i<N;i++)
	{
	//	printf("Krug broj %d\n", i+1);
		scanf("%s %lld", S1, &br);
		rez1=strcmp(S1,"O");
		rez2=strcmp(S1,"A");
		rez3=strcmp(S1,"B");
		rez4=strcmp(S1,"AB");
					
	//	printf("rezultat je %d\n", rez);
		if(rez1==0)
		{
		//	Oz=Oz-br;
			if((Oz-br)>=0){
				O[i]=br;
				A[i]=B[i]=AB[i]=0;
				Oz=Oz-br;
			}
			else{
				prekid=1;
			//	break;
			}
		//	printf("uneta je O krvna grupa\n");
		//	printf("broj jedinica je %d\n", br);
		}
	//	rez=strcmp(S1,"A");
		if(rez2==0)
		{
		//	Az=Az-br;
			if ((Az-br)>=0){
				O[i]=0;
				A[i]=br;
				B[i]=AB[i]=0;
				Az=Az-br;
			}
			else if ((Az-br+Oz)>=0)
			{
				Oz=Oz-(br-Az);
		//		printf("Oz je %d\n", Oz);
				O[i]=br-Az;
				A[i]=Az;
				B[i]=AB[i]=0;
				Az=0;
			}
			else{
				prekid=1;
			//	break;
				}
		//	printf("uneta je A krvna grupa\n");
		//	printf("broj jedinica je %d\n", br);
		}
	//	rez=strcmp(S1,"B");
		if(rez3==0)
		{
		//	Bz=Bz-br;
			if ((Bz-br)>=0){
				O[i]=0;
				B[i]=br;
				A[i]=AB[i]=0;
				Bz=Bz-br;
			}
			else if ((Bz-br+Oz)>=0)
			{
				Oz=Oz-(br-Bz);
				O[i]=br-Bz;
				B[i]=Bz;
				A[i]=AB[i]=0;
				Bz=0;
			}
			else{
				prekid=1;
			//	break;
				}
		//	printf("uneta je B krvna grupa\n");
		//	printf("broj jedinica je %d\n", br);
		}
	//	rez=strcmp(S1,"AB");
		if(rez4==0)
		{
	//		printf ("Usli smo u AB %d %d grupu\n", ABz, br);
		//	ABz=ABz-br;
		//	printf("ABz je %d\n", ABz);
		//	printf("ABz je %d\n", ABz+Az+Bz);
			if((ABz-br)>=0){
				AB[i]=br;
				O[i]=A[i]=B[i]=0;
				ABz=ABz-br;
			//	printf("dosli smo do ABz>0\n");
			}
			else if ((ABz-br+Az)>=0){
				Az=Az-(br-ABz);
				O[i]=B[i]=0;
				AB[i]=ABz;
				A[i]=br-ABz;
				ABz=0;
			//		printf("dosli smo do ABz+AZ>0\n");
				}
			else if ((ABz-br+Az+Bz)>=0){
				Bz=Bz-(br-ABz-Az);
				O[i]=0;
				A[i]=Az;
				AB[i]=ABz;
				B[i]=br-ABz-Az;
				ABz=0;
				Az=0;
			//		printf("dosli smo do ABz+AZ+Bz>0\n");
				}
			else if ((ABz+Az+Bz+Oz-br)>=0){
				Oz=Oz-(br-ABz-Az-Bz);
				O[i]=br-ABz-Bz-Az;
				A[i]=Az;
				AB[i]=ABz;
				B[i]=Bz;
				ABz=0;
				Az=0;
				Bz=0;
			//	printf("dosli smo do ABz+AZ+Bz+Oz>0\n");
				}
			
			else
			{
				prekid=1;
			//	break;
			}
			
		//	printf("uneta je AB krvna grupa\n");
		//	printf("broj jedinica je %d\n", br);
		}
		
	}
	if(prekid==0)
	{
		printf("moguce\n");
		for(i=0;i<N;i++)
		{
				printf("%lld %lld %lld %lld\n", O[i], A[i], B[i], AB[i]);
		}
	}
	else
	{	
		printf("nemoguce");
	}
	
}