#include <bits/stdc++.h>

using namespace std;

int resenje[10000][4];

int main() {

    int n;

    int o, a, b, ab;

    cin >> n;

    cin >> o >> a >> b >> ab;

    vector<pair<string, int>> pacijenti;

    vector<int> pacijentiO;
    vector<int> pacijentiAiB;
    vector<int> pacijentiAB;

    for(int i = 0; i < n; i++) {
        string grupa;
        int jedinice;
        cin >> grupa >> jedinice;
        pair<string, int> pacijent;
        pacijent.first = grupa;
        pacijent.second = jedinice;
        pacijenti.push_back(pacijent);
        if(grupa == "O") {
            pacijentiO.push_back(i);
        } else if(grupa == "A" || grupa == "B") {
            pacijentiAiB.push_back(i);
        } else {
            pacijentiAB.push_back(i);
        }
    }

    for(int i = 0; i < n; i++) {
        for(int j = 0; j < 4; j++) {
            resenje[i][j] = 0;
        }
    }

    for(int i = 0; i < pacijentiO.size(); i++) {
        int indexp = pacijentiO[i];

        pair<string, int> p;
        p.first = pacijenti[indexp].first;
        p.second = pacijenti[indexp].second;

        if(p.second > o) {
            cout << "nemoguce";
            return 0;
        } else {
            resenje[indexp][0] += p.second;
            o -= p.second;
        }
    }

    for(int i = 0; i < pacijentiAiB.size(); i++) {
        int indexp = pacijentiAiB[i];

        pair<string, int> p;
        p.first = pacijenti[indexp].first;
        p.second = pacijenti[indexp].second;

        if(p.first == "A") {
            if(p.second <= a) {
                resenje[indexp][1] += p.second;
                a -= p.second;
            } else if(p.second > a && p.second <= (a + o)) {
                resenje[indexp][1] += a;
                resenje[indexp][0] += (p.second - a);
                o -= (p.second - a);
                a = 0;
            } else {
                cout << "nemoguce";
                return 0; 
            }
        } else {
            if(p.second <= b) {
                resenje[indexp][2] += p.second;
                b -= p.second;
            } else if(p.second > b && p.second <= (b + o)) {
                resenje[indexp][1] += b;
                resenje[indexp][0] += (p.second - b);
                o -= (p.second - b);
                b = 0;
            } else {
                cout << "nemoguce";
                return 0; 
            }
        }
    }

    for(int i = 0; i < pacijentiAB.size(); i++) {

        int ukupno = o + a + b + ab;

        int indexp = pacijentiAB[i];

        pair<string, int> p;
        p.first = pacijenti[indexp].first;
        p.second = pacijenti[indexp].second;

        if(p.second > ukupno){
            cout << "nemoguce";
            return 0;
        }
        else if(p.second <= ab) {
            resenje[indexp][3] += p.second;
            ab -= p.second;
        } else if(p.second <= (ab + o)) {
            resenje[indexp][3] += ab;
            resenje[indexp][0] += (p.second - ab);
            o -= (p.second - ab);
            ab = 0;
        } else if(p.second <= (ab + o + a)) {
            resenje[indexp][3] += ab;
            resenje[indexp][0] += o;
            resenje[indexp][1] += (p.second - ab - o);
            a -= (p.second - ab - o);
            ab = 0;
            o = 0;
        } else if(p.second <= (ab + o + a + b)) {
            resenje[indexp][3] += ab;
            resenje[indexp][0] += o;
            resenje[indexp][1] += a;
            resenje[indexp][2] += (p.second - ab - o - a);
            b -= (p.second - ab - o - a);
            ab = 0;
            o = 0;
            a = 0;
        }
    }

    cout << "moguce\n";

    for(int i = 0; i < n; i++) {
        for(int j = 0; j < 4; j++) {
            cout << resenje[i][j] << " ";
        }
        cout << "\n";
    }

    return 0;
}