#include <iostream>
#include <vector>
#include <cmath>
#include <cstring>

using namespace std;

int main()
{

	int zalihaO, zalihaA, zalihaB, zalihaAB;
	int zalihaOtest, zalihaAtest, zalihaBtest, zalihaABtest;
	int mogucnost, brojac, brPacijenata;

	int koristO = 0;
	int koristA = 0;
	int koristB = 0;
	int koristAB = 0;

	int brPotrebnihJedinicaTrenutno;
	string krvniTipTrenutno;

	vector<int> brPotrebnihJedinica;
	vector<string> krvniTip;

	cin >> brPacijenata;
	brojac = brPacijenata;
	mogucnost = 1;

	cin >> zalihaO >> zalihaA >> zalihaB >> zalihaAB;

	zalihaOtest = zalihaO;
	zalihaAtest = zalihaA;
	zalihaBtest = zalihaB;
	zalihaABtest = zalihaAB;

	while (brojac > 0) {
		cin >> krvniTipTrenutno >> brPotrebnihJedinicaTrenutno;

		krvniTip.push_back(krvniTipTrenutno);
		brPotrebnihJedinica.push_back(brPotrebnihJedinicaTrenutno);

		brojac--;
	}

	brojac = 0;

	do { //OVO SLUZI DA TESTIRA DA LI JE MOGUCE

		brPotrebnihJedinicaTrenutno = brPotrebnihJedinica[brojac];
		krvniTipTrenutno = krvniTip[brojac];

		if (krvniTipTrenutno == "O") { //TIP KRVI O
			if (zalihaO >= brPotrebnihJedinicaTrenutno) {
				zalihaO = zalihaO - brPotrebnihJedinicaTrenutno;
			}
			else {
				mogucnost = 0;
			}
		}
		else if (krvniTipTrenutno == "A") { //TIP KRVI A
			if (zalihaA > brPotrebnihJedinicaTrenutno) {
				zalihaA = zalihaA - brPotrebnihJedinicaTrenutno;
			}
			else {
				brPotrebnihJedinicaTrenutno = brPotrebnihJedinicaTrenutno - zalihaA;
				zalihaA = 0;
				if (zalihaO > brPotrebnihJedinicaTrenutno) {
					zalihaO = zalihaO - brPotrebnihJedinicaTrenutno;
				}
				else if (zalihaO == brPotrebnihJedinicaTrenutno) {
					zalihaO = zalihaO - brPotrebnihJedinicaTrenutno;
				}
				else {
					mogucnost = 0;
				}
			}
		}
		else if (krvniTipTrenutno == "B") { //TIP KRVI B
			if (zalihaB > brPotrebnihJedinicaTrenutno) {
				zalihaB = zalihaB - brPotrebnihJedinicaTrenutno;
			}
			else {
				brPotrebnihJedinicaTrenutno = brPotrebnihJedinicaTrenutno - zalihaB;
				zalihaB = 0;
				if (zalihaO > brPotrebnihJedinicaTrenutno) {
					zalihaO = zalihaO - brPotrebnihJedinicaTrenutno;
				}
				else if (zalihaO == brPotrebnihJedinicaTrenutno) {
					zalihaO = zalihaO - brPotrebnihJedinicaTrenutno;
				}
				else {
					mogucnost = 0;
				}
			}
		}
		else { //TIP LRVI AB
			if (zalihaAB > brPotrebnihJedinicaTrenutno) {
				zalihaAB = zalihaAB - brPotrebnihJedinicaTrenutno;
			}
			else if (zalihaAB == brPotrebnihJedinicaTrenutno) {
				zalihaAB = 0;
			}
			else {
				brPotrebnihJedinicaTrenutno = brPotrebnihJedinicaTrenutno - zalihaAB;
				zalihaAB = 0;

				if (zalihaA > brPotrebnihJedinicaTrenutno) {
					zalihaA = zalihaA - brPotrebnihJedinicaTrenutno;
				}
				else if (zalihaA == brPotrebnihJedinicaTrenutno) {
					zalihaA = 0;
				}
				else {
					brPotrebnihJedinicaTrenutno = brPotrebnihJedinicaTrenutno - zalihaA;
					zalihaA = 0;////////////

					if (zalihaB > brPotrebnihJedinicaTrenutno) {
						zalihaB = zalihaB - brPotrebnihJedinicaTrenutno;
					}
					else if (zalihaB == brPotrebnihJedinicaTrenutno) {
						zalihaB = 0;
					}
					else {
						brPotrebnihJedinicaTrenutno = brPotrebnihJedinicaTrenutno - zalihaB;
						zalihaB = 0;///////////

						if (zalihaO > brPotrebnihJedinicaTrenutno) {
							zalihaO = zalihaO - brPotrebnihJedinicaTrenutno;
						}
						else if (zalihaO == brPotrebnihJedinicaTrenutno) {
							zalihaO = 0;
						}
						else {
							mogucnost = 0;
						}
					}
				}
			}
		}

		brojac++;
	} while (mogucnost == 1 && brojac < brPacijenata);

	if (mogucnost == 0) {
		std::cout << "nemoguce";
	}
	else { //OVDE POCINJE KOD AKO JE MOGUCE
		std::cout << "moguce" << endl;

		brojac = 0;

		do { //OVO SLUZI DA TESTIRA DA LI JE MOGUCE

			koristO = 0;
			koristA = 0;
			koristB = 0;
			koristAB = 0;

			brPotrebnihJedinicaTrenutno = brPotrebnihJedinica[brojac];
			krvniTipTrenutno = krvniTip[brojac];

			if (krvniTipTrenutno == "O") { //TIP KRVI O
				if (zalihaOtest >= brPotrebnihJedinicaTrenutno) {
					zalihaOtest = zalihaOtest - brPotrebnihJedinicaTrenutno;
					koristO = brPotrebnihJedinicaTrenutno;
				}
			}
			else if (krvniTipTrenutno == "A") { //TIP KRVI A
				if (zalihaAtest > brPotrebnihJedinicaTrenutno) {
					zalihaAtest = zalihaAtest - brPotrebnihJedinicaTrenutno;
					koristA = brPotrebnihJedinicaTrenutno;
				}
				else {
					brPotrebnihJedinicaTrenutno = brPotrebnihJedinicaTrenutno - zalihaAtest;
					koristA = zalihaAtest;
					zalihaAtest = 0;
					if (zalihaOtest > brPotrebnihJedinicaTrenutno) {
						zalihaOtest = zalihaOtest - brPotrebnihJedinicaTrenutno;
						koristO = brPotrebnihJedinicaTrenutno;
					}
					else if (zalihaOtest == brPotrebnihJedinicaTrenutno) {
						zalihaOtest = zalihaOtest - brPotrebnihJedinicaTrenutno;
						koristO = brPotrebnihJedinicaTrenutno;
					}
				}
			}
			else if (krvniTipTrenutno == "B") { //TIP KRVI B
				if (zalihaBtest > brPotrebnihJedinicaTrenutno) {
					zalihaBtest = zalihaBtest - brPotrebnihJedinicaTrenutno;
					koristB = brPotrebnihJedinicaTrenutno;
				}
				else{
					brPotrebnihJedinicaTrenutno = brPotrebnihJedinicaTrenutno - zalihaBtest;
					koristB = zalihaBtest;
					zalihaBtest = 0;
					if (zalihaOtest > brPotrebnihJedinicaTrenutno) {
						zalihaOtest = zalihaOtest - brPotrebnihJedinicaTrenutno;
						koristO = brPotrebnihJedinicaTrenutno;
					}
					else if (zalihaOtest == brPotrebnihJedinicaTrenutno) {
						zalihaOtest = zalihaOtest - brPotrebnihJedinicaTrenutno;
						koristO = brPotrebnihJedinicaTrenutno;
					}
				}
			}
			else if(krvniTipTrenutno == "AB"){ //TIP KRVI AB
				if (zalihaABtest > brPotrebnihJedinicaTrenutno) {
					zalihaABtest = zalihaABtest - brPotrebnihJedinicaTrenutno;
					koristAB = brPotrebnihJedinicaTrenutno;
				}
				else if (zalihaABtest == brPotrebnihJedinicaTrenutno) {
					koristAB = brPotrebnihJedinicaTrenutno;
					zalihaABtest = 0;
				}
				else {
					brPotrebnihJedinicaTrenutno = brPotrebnihJedinicaTrenutno - zalihaABtest;
					koristAB = zalihaABtest;
					zalihaABtest = 0;

					if (zalihaAtest > brPotrebnihJedinicaTrenutno) {
						zalihaAtest = zalihaAtest - brPotrebnihJedinicaTrenutno;
						koristA = brPotrebnihJedinicaTrenutno;
					}
					else if (zalihaAtest == brPotrebnihJedinicaTrenutno) {
						zalihaAtest = 0;
						koristA = brPotrebnihJedinicaTrenutno;
					}
					else {
						brPotrebnihJedinicaTrenutno = brPotrebnihJedinicaTrenutno - zalihaAtest;
						koristA = zalihaAtest;
						zalihaAtest = 0;////////////

						if (zalihaBtest > brPotrebnihJedinicaTrenutno) {
							zalihaBtest = zalihaBtest - brPotrebnihJedinicaTrenutno;
							koristB = brPotrebnihJedinicaTrenutno;
						}
						else if (zalihaBtest == brPotrebnihJedinicaTrenutno) {
							zalihaBtest = 0;
							koristB = brPotrebnihJedinicaTrenutno;
						}
						else {
							brPotrebnihJedinicaTrenutno = brPotrebnihJedinicaTrenutno - zalihaBtest;
							koristB = zalihaBtest;
							zalihaBtest = 0;///////////

							if (zalihaOtest > brPotrebnihJedinicaTrenutno) {
								zalihaOtest = zalihaOtest - brPotrebnihJedinicaTrenutno;
								koristO = brPotrebnihJedinicaTrenutno;
							}
							else if (zalihaOtest == brPotrebnihJedinicaTrenutno) {
								zalihaOtest = 0;
								koristO = brPotrebnihJedinicaTrenutno;
							}
						}
					}
				}
			}

			brojac++;
			std::cout << koristO << " " << koristA << " " << koristB << " " << koristAB << endl;
		} while (mogucnost == 1 && brojac < brPacijenata);
	}

	return 0;    
}