#include<bits/stdc++.h>
using namespace std;

#define ll long long

vector<int> zalihe(4);
vector<int> preostale_zalihe(4);
map<string, int> ukupno;

bool moze() 
{
	preostale_zalihe = zalihe;
	// proverimo O
	if (zalihe[0] < ukupno["O"]) {
		return false;
	}
	zalihe[0] -= ukupno["O"];

	// proverimo A
	if (zalihe[0] + zalihe[1] < ukupno["A"]) {
		return false;
	}
	zalihe[0] -= max(ukupno["A"] - zalihe[1], 0);
	zalihe[1] = max(zalihe[1] - ukupno["A"], 0);

	if (zalihe[0] < 0 || zalihe[1] < 0) {
		return false;
	}
	//proverimo B
	if (zalihe[0] + zalihe[2] < ukupno["B"]) {
		return false;
	}
	zalihe[0] -= max(ukupno["B"] - zalihe[2], 0);
	zalihe[2] = max(zalihe[2] - ukupno["B"], 0);

	if (zalihe[0] < 0 || zalihe[2] < 0) {
		return false;
	}
	// proverimo AB
	if (ukupno["AB"] > zalihe[0] + zalihe[1] + zalihe[2] + zalihe[3]) {
		return false;
	}
	if (zalihe[0] < 0 || zalihe[1] < 0 || zalihe[2] < 0 || zalihe[3] < 0) {
		return false;
	}
	swap(zalihe, preostale_zalihe);
	return true;
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);

	int n; cin >> n;

	for (int i = 0; i < 4; i++) {
		cin >> zalihe[i]; 
	}

	vector<pair<string, int>> pacijenti(n);
	for (int i = 0; i < n; i++) {
		cin >> pacijenti[i].first >> pacijenti[i].second;	
		ukupno[pacijenti[i].first] += pacijenti[i].second;
	}

	if (moze()) {
		cout << "moguce\n";
		
		for (int i = 0; i < n; i++) {
			if (pacijenti[i].first == "AB") {
				int treba = pacijenti[i].second;
				vector<int> temp = {0, 0, 0, 0};
				int ind = 0;
				
				while(treba && ind < 4) {
					
					/* cout << "PREOSTALE ZALIHE: \n";
					for (int x : preostale_zalihe) cout << x << " ";
					cout << "\n"; */
					
					if (preostale_zalihe[ind] >= treba) {
						temp[ind] += treba;
						preostale_zalihe[ind] -= treba;
						treba = 0;
					}
					else {
						treba -= preostale_zalihe[ind];
						temp[ind] += preostale_zalihe[ind];
						preostale_zalihe[ind] = 0;
					}
					++ind;
				}
				for (int x : temp) {
					cout << x << " ";
				}
				cout << "\n";
			}
			else {
				if (pacijenti[i].first == "O") {
					cout << pacijenti[i].second << " " << 0 << " " << 0 << " " << 0 << "\n";
					zalihe[0] -= pacijenti[i].second;
				}
				else if (pacijenti[i].first == "A") {
					if (zalihe[1] >= pacijenti[i].second) {
						cout << 0 << " " << pacijenti[i].second << " " << 0 << " " << 0 << "\n";
						zalihe[1] -= pacijenti[i].second;
					}
					else {
						cout << pacijenti[i].second - zalihe[1] << " " << zalihe[1] << " " << 0 << " " << 0 << "\n";
						zalihe[0] -= pacijenti[i].second - zalihe[1];
						zalihe[1] = 0;
					}
				}
				else {
					if (zalihe[2] >= pacijenti[i].second) {
						cout << 0 << " " << 0 << " " << pacijenti[i].second << " " << 0 << "\n";
						zalihe[2] -= pacijenti[i].second;
					}
					else {
						cout << pacijenti[i].second - zalihe[2] << " " << 0 << " " << zalihe[2] << " " << 0 << "\n";
						zalihe[0] -= pacijenti[i].second - zalihe[2];
						zalihe[2] = 0;
					}
				}
			}
		}
	}
	else {
		cout << "nemoguce\n";
	}
	return 0;
}