#include <iostream>
#include <string>
#include <math.h>

using namespace std;

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL); 
    short int n;
	cin >> n;
	int zalihe[4];
	cin >> zalihe[0] >> zalihe[1] >> zalihe[2] >> zalihe[3];
	string grupa[n];
	int treba[n];
	int o = 0;
	int a = 0;
	int b = 0;
	int ab = 0;
	int doze[n][4];
	for (int i = 0; i < n; i++)
	{
		cin >> grupa[i] >> treba[i];
		if (grupa[i] == "O") {
			o += treba[i];
		}
		else if (grupa[i] == "A") {
			a += treba[i];
		}
		else if (grupa[i] == "B") {
			b += treba[i];
		}
		else if (grupa[i] == "AB") {
			ab += treba[i];
		}

	}
	bool flag = true;
	for (int i = 0; i < n; i++) {
		
		if (grupa[i] == "O") {
			zalihe[0] -= treba[i];
			o -= treba[i];
			if (zalihe[0] < 0) {
				cout << "nemoguce";
				flag = false;
				break;
			}
			else {
				doze[i][0] = treba[i];
				doze[i][1] = 0;
				doze[i][2] = 0;
				doze[i][3] = 0;
			}
		}
		else if (grupa[i] == "A") {
			a -= treba[i];
			if (treba[i] > zalihe[1]) {
				int p = zalihe[1];
				treba[i] -= zalihe[1];
				zalihe[1] = 0;
				zalihe[0] -= treba[i];
				if (zalihe[0] < 0) {
					cout << "nemoguce";
					flag = false;

					break;
				}
				else {
					doze[i][0] = treba[i];
					doze[i][1] = p;
					doze[i][2] = 0;
					doze[i][3] = 0;
				}
			}
			else {
				zalihe[1] -= treba[i];
				doze[i][0] = 0;
				doze[i][1] = treba[i];
				doze[i][2] = 0;
				doze[i][3] = 0;
			}
		}
		else if (grupa[i] == "B") {
			b -= treba[i];
			if (treba[i] > zalihe[2]) {
				int p = zalihe[2];
				treba[i] -= zalihe[2];
				zalihe[2] = 0;
				zalihe[0] -= treba[i];
				if (zalihe[0] < 0) {
					cout << "nemoguce";
					flag = false;

					break;
				}
				else {
					doze[i][0] = treba[i];
					doze[i][1] = 0;
					doze[i][2] = p;
					doze[i][3] = 0;
				}
			}
			else {
				zalihe[2] -= treba[i];
				doze[i][0] = 0;
				doze[i][1] = 0;
				doze[i][2] = treba[i];
				doze[i][3] = 0;
			}
		}
		else if (grupa[i] == "AB") {
			ab -= treba[i];
			if (zalihe[3] >= treba[i]) {
				zalihe[3] -= treba[i];
				doze[i][0] = 0;
				doze[i][1] = 0;
				doze[i][2] = 0;
				doze[i][3] = treba[i];
			}
			else {
				doze[i][3] = zalihe[3];
				treba[i] -= zalihe[3];
				zalihe[3] = 0;
				if (b == 0) {
					if (zalihe[2] >= treba[i]) {
						zalihe[2] -= treba[i];
						doze[i][0] = 0;
						doze[i][1] = 0;
						doze[i][2] = treba[i];
					}
					else {
						doze[i][2] = zalihe[2];
						treba[i] -= zalihe[2];
						zalihe[2] = 0;
						if ((a == 0)) {
							if (zalihe[1] >= treba[i]) {
								zalihe[1] -= treba[i];
								doze[i][0] = 0;
								doze[i][1] = treba[i];
							}
							else {
								doze[i][1] = zalihe[1];
								treba[i] -= zalihe[1];
								zalihe[1] = 0;
								if ((o == 0)) {
									if (zalihe[0] >= treba[i]) {
										zalihe[0] -= treba[i];
										doze[i][0] = treba[i];
									}
									else {
										cout << "nemoguce";
										flag = false;

										break;
									}
								}
								else {
									if ((zalihe[0] - o) < treba[i]) {
										cout << "nemoguce";
										flag = false;

										break;
									}
									else {
										zalihe[0] -= treba[i];
										doze[i][0] = treba[i];
									}
								}
							}
						}
						else {
							if ((zalihe[1] - a) >= treba[i]) {
								doze[i][0] = 0;
								doze[i][1] = treba[i];
							}
							else {
								doze[i][1] = zalihe[1] - a;
								treba[i] = treba[i] - (zalihe[1] - a);
								zalihe[1] = a;
								if ((o == 0)) {
									if (zalihe[0] >= treba[i]) {
										zalihe[0] -= treba[i];
										doze[i][0] = treba[i];
									}
									else {
										cout << "nemoguce";
										flag = false;

										break;
									}
								}
								else {
									if ((zalihe[0] - o) < treba[i]) {
										cout << "nemoguce";
										flag = false;

										break;
									}
									else {
										zalihe[0] -= treba[i];
										doze[i][0] = treba[i];
									}
								}
							}
						}
					}
				}
				else {
					if ((zalihe[2] - b) >= treba[i]) {
						doze[i][0] = 0;
						doze[i][1] = 0;
						doze[i][2] = treba[i];
						zalihe[2] -= treba[i];
					}
					else {
						doze[i][2] == zalihe[2] - b;
						zalihe[2] = b;
						if ((a == 0)) {
							if (zalihe[1] >= treba[i]) {
								zalihe[1] -= treba[i];
								doze[i][0] = 0;
								doze[i][1] = treba[i];
							}
							else {
								doze[i][1] = zalihe[1];
								treba[i] -= zalihe[1];
								zalihe[1] = 0;
								if ((o == 0)) {
									if (zalihe[0] >= treba[i]) {
										zalihe[0] -= treba[i];
										doze[i][0] = treba[i];
									}
									else {
										cout << "nemoguce";
										flag = false;

										break;
									}
								}
								else {
									if ((zalihe[0] - o) < treba[i]) {
										cout << "nemoguce";
										flag = false;

										break;
									}
									else {
										zalihe[0] -= treba[i];
										doze[i][0] = treba[i];
									}
								}
							}
						}
						else {
							if ((zalihe[1] - a) >= treba[i]) {
								doze[i][0] = 0;
								doze[i][1] = treba[i];
							}
							else {
								doze[i][1] = zalihe[1] - a;
								treba[i] = treba[i] - (zalihe[1] - a);
								if ((o == 0)) {
									if (zalihe[0] >= treba[i]) {
										zalihe[0] -= treba[i];
										doze[i][0] = treba[i];
									}
									else {
										cout << "nemoguce";
										flag = false;

										break;
									}
								}
								else {
									if ((zalihe[0] - o) < treba[i]) {
										cout << "nemoguce";
										flag = false;

										break;
									}
									else {
										zalihe[0] -= treba[i];
										doze[i][0] = treba[i];
									}
								}
							}
						}
					}
				}
			}
		}
	}
	if (flag) {
		cout << "moguce" << "\n";
		for (int i = 0; i < n; i++)
		{
			cout << doze[i][0] << ' ' << doze[i][1] << ' ' << doze[i][2] << ' ' << doze[i][3] << "\n";

		}
	}

	return 0;
}