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

//      Starting Kit     (START)
typedef long long ll;
#define INF INT_MAX
#define MOD (1e9+7)

#define pii pair<int, int>
#define mp make_pair

#define vi vector<int>
#define vll vector<ll>
#define vc vector<char>
#define vb vector<bool>
#define vs vector<string>
#define vvi vector<vi>
#define vii vector<pii>
#define pb push_back
#define print_vect(v) for (auto it : v) cout << it << " ";
//      Starting Kit     (END)

int n;
int O, A, B, AB;

struct Pac {
    string grupa;
    int jedinica;
};
vector<Pac> pacijenti;

bool status = true;
vvi ispis;

void input() {
    cin >> n;
    cin >> O >> A >> B >> AB;

    pacijenti.resize(n);
    for (int i = 0; i < n; ++i)
        cin >> pacijenti[i].grupa >> pacijenti[i].jedinica;
}

void solve() {

    ispis.resize(n, vector<int>(4));
    vi grupaAB;

    for (int i = 0; i < n; ++i) {
        Pac p = pacijenti[i];

        if (p.grupa == "O") { // O
            if (p.jedinica > O) { status = false; break; }
            O -= p.jedinica;
            ispis[i][0] = p.jedinica;
        }

        else if (p.grupa == "A") { // A
            if (A >= p.jedinica) {
                ispis[i][1] = p.jedinica;
                A -= p.jedinica;
                p.jedinica = 0;
            }
            if (A < p.jedinica) {
                p.jedinica -= A;
                ispis[i][1] = A;
                A = 0;
            }
            if (p.jedinica > O) { status = false; break; }
            O -= p.jedinica;
            ispis[i][0] = p.jedinica;
        }

        else if (p.grupa == "B") { // B
            if (B >= p.jedinica) {
                ispis[i][2] = p.jedinica;
                B -= p.jedinica;
                p.jedinica = 0;
            }
            if (B < p.jedinica) {
                p.jedinica -= B;
                ispis[i][2] = B;
                B = 0;
            }
            if (p.jedinica > O) { status = false; break; }
            O -= p.jedinica;
            ispis[i][0] = p.jedinica;
        }

        else if (p.grupa == "AB") {
            grupaAB.pb(i);
        }
    }

    for (auto i : grupaAB) {
        Pac p = pacijenti[i];
        if ((O+A+B+AB) < p.jedinica) { status = false; break; }

        if (p.jedinica >= AB) {
            p.jedinica -= AB; ispis[i][3] = AB; AB = 0;
        }
        else if (p.jedinica < AB) {
            AB -= p.jedinica;
            ispis[i][3] = p.jedinica;
            p.jedinica = 0; continue;
        }

        if (p.jedinica >= A) {
            p.jedinica -= A; ispis[i][1] = A; A = 0;
        }
        else if (p.jedinica < A) {
            A -= p.jedinica;
            ispis[i][1] = p.jedinica;
            p.jedinica = 0; continue;
        }

        if (p.jedinica >= B) {
            p.jedinica -= B; ispis[i][2] = B; B = 0;
        }
        else if (p.jedinica < B) {
            B -= p.jedinica;
            ispis[i][2] = p.jedinica;
            p.jedinica = 0; continue;
        }

        if (p.jedinica >= O) {
            p.jedinica -= O; ispis[i][0] = O; O = 0;
        }
        else if (p.jedinica < O) {
            O -= p.jedinica;
            ispis[i][0] = p.jedinica;
            p.jedinica = 0; continue;
        }
    }


    if (status == false) cout << "nemoguce";
    else {
        cout << "moguce" << endl;
        for (int i = 0; i < n; ++i) {
            for (int j = 0; j < 4; ++j)
                cout << ispis[i][j] << " ";
            cout << endl;
        }
    }
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    input();
    solve();
    return 0;
}