#include <bits/stdc++.h>

using namespace std;

bool jel_moguce(long long o,long long a,long long b,long long ab, long long o_fali, long long a_fali, long long b_fali, long long ab_fali) {
    if(o < o_fali)
        return false;

    o -= o_fali;

    if((o + a) < a_fali)
        return false;

    if(a >= a_fali)
        a -= a_fali;
    else {
        a_fali -= a;
        a = 0;
        o -= a_fali; }

    if((o + b) < b_fali)
        return false;

    if(b >= b_fali)
        b -= b_fali;
    else {
        b_fali -= b;
        b = 0;
        o -= b_fali; }

    ab += o;
    ab += a;
    ab += b;

    if(ab < ab_fali)
        return false;

    return true;
}

int main()
{
    long long o, a, b, ab;
    long long n;
    cin >> n;
    cin >> o >> a >> b >> ab;

    long long o_fali = 0;
    long long a_fali = 0;
    long long b_fali = 0;
    long long ab_fali = 0;

    vector <string> grupa (n);
    vector <long long> fali (n);

    for(long long i = 0; i < n; i++) {
        cin >> grupa[i] >> fali[i];

        if(grupa[i] == "O")
            o_fali += fali[i];
        if(grupa[i] == "A")
            a_fali += fali[i];
        if(grupa[i] == "B")
            b_fali += fali[i];
        if(grupa[i] == "AB")
            ab_fali += fali[i];
         }

    vector <bool> jel_ab (n);

    vector <long long> klk_o (n);
    vector <long long> klk_a (n);
    vector <long long> klk_b (n);
    vector <long long> klk_ab (n);

    for(long long i = 0; i < n; i++) {
        klk_o[i] = 0;
        klk_a[i] = 0;
        klk_b[i] = 0;
        klk_ab[i] = 0;
    }


    if(jel_moguce(o, a, b, ab, o_fali, a_fali, b_fali, ab_fali)) {
        cout << "moguce" << endl;

        for(long long i = 0; i < n; i++) {
            if(grupa[i] == "AB")
                jel_ab[i] = true;
            else
                jel_ab[i] = false; }

        for(long long i = 0; i < n; i++){
            if(!(jel_ab[i])){
                if(grupa[i] == "O") {
                    o -= fali[i];
                    klk_o[i] = fali[i]; }

                if(grupa[i] == "A") {
                    if(a >= fali[i]) {
                        a -= fali[i];
                        klk_a[i] = fali[i]; }

                    else {
                        klk_a[i] = a;
                        fali[i] -= a;
                        klk_o[i] = fali[i];
                        a = 0;
                        o -= fali[i]; } }

                if(grupa[i] == "B") {
                    if(b >= fali[i]) {
                        b -= fali[i];
                        klk_b[i] = fali[i]; }

                    else {
                        klk_b[i] = b;
                        fali[i] -= b;
                        klk_o[i] = fali[i];
                        b = 0;
                        o -= fali[i]; } }
            }
        }

        for(long long i = 0; i < n; i++) {
            if(jel_ab[i]) {
                if(ab >= fali[i]){
                    ab -= fali[i];
                    klk_ab[i] = fali[i]; }

                else {
                    klk_ab[i] = ab;
                    fali[i] -= ab;
                    ab = 0;
                    if(o >= fali[i]) {
                        o -= fali[i];
                        klk_o[i] = fali[i]; }

                    else {
                        klk_o[i] = o;
                        fali[i] -= o;
                        o = 0;
                        if(a >= fali[i]) {
                            a -= fali[i];
                            klk_a[i] = fali[i]; }

                        else {
                            klk_a[i] = a;
                            fali[i] -= a;
                            a = 0;
                            b -= fali[i];
                            klk_b[i] = fali[i];
                        }
                    }
                }
            }
        }

        for(long long i = 0; i < n; i++)
            cout << klk_o[i] << " " << klk_a[i] << " " << klk_b[i] << " " << klk_ab[i] << endl;

         }

    else
        cout << "nemoguce" << endl;

    return 0;
}