#include <iostream>
#include <string>

using namespace std;

int main() {
	
	int N;
	long ukupno = 0;
	int O, A, B, AB;
	char grupa[10000];
	int kolicina[10000];
	int o[10000], a[10000], b[10000], c[10000];
	bool f = true;
	
	cin >> N >> O >> A >> B >> AB;
	
	for (int i = 0; i < N; i++) 
	{
		string a;
		int k;
		cin >> a >> k;
		if (a == "AB") grupa[i] = 'C';
		else grupa[i] = a[0];
		kolicina[i] = k;
		if (a == "O") {
			if (k > O) {
				f = false;
			}
			else {
				O -= k;
				o[i] = k;
				a[i] = 0;
				b[i] = 0;
				c[i] = 0;
			}
		}
		if (a == "A") {
			if (k > A) {
				if (k - A > O) {
					f = false;
				}
				else {
					k -= A;
					O -= k;
					o[i] = k;
					a[i] = A;
					b[i] = 0;
					c[i] = 0;
				}
			}
			else {
				A -= k;
				o[i] = 0;
				a[i] = k;
				b[i] = 0;
				c[i] = 0;
			}
		}
		if (a == "B") {
			if (k > B) {
				if (k - B > O) {
					f = false;
				}
				else {
					k -= B;
					O -= k;
					o[i] = k;
					a[i] = 0;
					b[i] = B;
					c[i] = 0;
				}
			}
			else {
				B -= k;
				o[i] = 0;
				a[i] = 0;
				b[i] = k;
				c[i] = 0;
			}
		}
		if (a == "AB") {
			ukupno += k;
		}
	}
	
	if (ukupno > (O+A+B+AB)) f = false;
	
	if (f) {
		for (int i = 0; i < N; i++) {
			if (grupa[i] == 'C') {
				int k = kolicina[i];
				if (k > AB) {
					if (k - AB > A) {
						if (k - AB - A > B) {
							k -= (AB + A + B);
							o[i] = k;
							a[i] = A;
							b[i] = B;
							c[i] = AB;
						}
						else {
							k -= (AB + A);
							o[i] = 0;
							a[i] = A;
							b[i] = k;
							c[i] = AB;
						}
					}
					else {
						k -= AB;
						o[i] = 0;
						a[i] = k;
						b[i] = 0;
						c[i] = AB;
					}
				}
				else {
					o[i] = 0;
					a[i] = 0;
					b[i] = 0;
					c[i] = k;
				}
			}
		}
		cout << "moguce" << endl;
		for (int i = 0; i < N; i++) {
			cout << o[i] << " " << a[i] << " " << b[i] << " " << c[i] << endl;
		}
	}
	else cout << "nemoguce";
	
	return 0;
}