#include <bits/stdc++.h>

typedef long long ll;

using namespace std;

struct pacijent {
    string grupa;
    int jedinica;
};

bool sortiranje(pacijent x, pacijent y) {
    if(x.grupa == "O")
        return true;
    else if(y.grupa == "O")
        return false;
    else if(x.grupa == "A")
        return true;
    else if(y.grupa == "A")
        return false;
    else if(x.grupa == "AB")
        return false;
    else if(y.grupa == "AB")
        return true;
    return false;
}

int nadjiGrupu(string s) {
    if (s == "O")
        return 0;
    if (s == "A")
        return 1;
    if (s == "B")
        return 2;
    if (s == "AB")
        return 3;
}

bool provera(vector<vector<ll> >& potrebnih, vector<ll>& zaliha, int pom, ll potrebno, ll broj) {
    ll razlika;
    if (pom == 0) {
        if(zaliha[0] < potrebno)
            return false;
        else {
            zaliha[0] -= potrebno;
            potrebnih[broj][0] += potrebno;
            return true;
        }
    }
    else if(pom == 1) {
        if(potrebno > zaliha[0] + zaliha[1])
            return false;
        else {
            if(potrebno <= zaliha[1]) {
                zaliha[1] -= potrebno;
                potrebnih[broj][1] += potrebno;
            }
            else {
                razlika = potrebno - zaliha[1];
                potrebnih[broj][1] += zaliha[1];
                zaliha[1] = 0;
                zaliha[0] -= razlika;
                potrebnih[broj][0] += razlika;
            }
            return true;
        }
    }
    else if(pom == 2) {
        if(potrebno > zaliha[0] + zaliha[2])
            return false;
        else {
            if(potrebno <= zaliha[2]) {
                zaliha[2] -= potrebno;
                potrebnih[broj][2] += potrebno;
            }
            else {
                razlika = potrebno - zaliha[2];
                potrebnih[broj][2] += zaliha[2];
                zaliha[2] = 0;
                zaliha[0] -= razlika;
                potrebnih[broj][0] += razlika;
            }
            return true;
        }
    }
    else {
        if(potrebno > zaliha[0] + zaliha[1] + zaliha[2] + zaliha[3])
            return false;
        else {
            if(potrebno <= zaliha[3]) {
                zaliha[3] -= potrebno;
                potrebnih[broj][3] += potrebno;
            }
            else {
                razlika = potrebno - zaliha[3];
                potrebnih[broj][3] += zaliha[3];
                zaliha[3] = 0;
                potrebno = razlika;
                if(potrebno > 0) {
                    for(int i = 0;i < 3;i++) {
                        if(potrebno == 0) break;
                        if(potrebno <= zaliha[i]) {
                            potrebnih[broj][i] += potrebno;
                            zaliha[i] = 0;
                            potrebno = 0;
                        }
                        else {
                            potrebnih[broj][i] += zaliha[i];
                            zaliha[i] = 0;
                            potrebno -= zaliha[i];
                        }
                    }
                }
                if(potrebno > 0)
                    return false;
            }
            return true;
        }
    }
}

void resi(vector<vector<ll> > potrebnih, vector<ll> zaliha, pacijent pacijenti[], ll n) {
    int pom;
    ll potrebno;
    for(ll i = 0;i < n;i++) {
        pom = nadjiGrupu(pacijenti[i].grupa);
        potrebno = pacijenti[i].jedinica;
        if(!provera(potrebnih, zaliha, pom, potrebno, i)) {
            cout << "nemoguce";
            return;
        }
    }
    cout << "moguce\n";
    for(ll i = 0;i < n;i++) {
        for(int j = 0;j < 4;j++)
            cout << potrebnih[i][j] << " ";
        cout << '\n';
    }
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    ll n;
    ll o, a, b, ab;
    cin >> n;
    pacijent pacijenti[n];
    vector<ll> zaliha;
    cin >> o >> a >> b >> ab;
    zaliha.push_back(o);
    zaliha.push_back(a);
    zaliha.push_back(b);
    zaliha.push_back(ab);
    for (ll i = 0;i < n;i++) {
        cin >> pacijenti[i].grupa;
        cin >> pacijenti[i].jedinica;
    }
    sort(pacijenti, pacijenti + n, sortiranje);
    vector<ll> niz(4, 0);
    vector<vector<ll> > potrebnih(n, niz);
    resi(potrebnih, zaliha, pacijenti, n);
    return 0;
}