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

struct Grupe{
    string grupica;
    int komada = 0;
    int o = 0;
    int a = 0;
    int b = 0;
    int ab = 0;
};

bool moguce(int zalihaA, int zalihaB, int zalihaAB, int zalihaO, int zbirPrva, int zbirDruga, int zbirObe, int zbirNula){
    if(zbirNula <= zalihaO) zalihaO -= zbirNula;
    else return false;

    if(zbirPrva <= zalihaA) zalihaA -= zbirPrva;
    else if(zbirPrva <= zalihaA + zalihaO){
        zbirPrva -= zalihaA;
        zalihaA = 0;
        zalihaO -= zbirPrva;
    }
    else return false;


    if(zbirDruga <= zalihaB) zalihaB -= zbirDruga;
    else if(zbirDruga <= zalihaB + zalihaO){
        zbirDruga -= zalihaB;
        zalihaB = 0;
        zalihaO -= zbirDruga;
    }
    else return false;

    if(zbirObe > zalihaAB + zalihaA + zalihaB) return false;
    return true;
}

int main(){
        ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);

        int n;
        int zalihaO, zalihaA, zalihaB, zalihaAB, broj;
        int brojNula = 0, brojPrva = 0, brojDruga = 0, brojObe = 0;
        int zbirNula = 0, zbirPrva = 0, zbirDruga = 0, zbirObe = 0;
        string grupa;

        cin >> n;
        cin >> zalihaO >> zalihaA >> zalihaB >> zalihaAB;

        Grupe pacijenti[n];
        int prva[n], druga[n], obe[n];

//INPUT
        for(int i = 0; i < n; i++){
            cin >> grupa >> broj;
            pacijenti[i].grupica = grupa;
            pacijenti[i].komada = broj;
            if(grupa == "O"){
                pacijenti[i].o = broj;
                brojNula += 1;
                zbirNula += broj;
            }
            else if(grupa == "A"){
                prva[brojPrva] = i;
                brojPrva += 1;
                zbirPrva += broj;
            }
            else if(grupa == "B"){
                druga[brojDruga] = i;
                brojDruga += 1;
                zbirDruga += broj;
            }
            else if(grupa == "AB"){
                obe[brojObe] = i;
                brojObe += 1;
                zbirObe += broj;
            }
        }


//DEBUG
        // cout << zalihaO << " " << zalihaA << " " << zalihaB << " " << zalihaAB;

//PROVERAVANJE
        if(!moguce(zalihaA, zalihaB, zalihaAB, zalihaO, zbirPrva, zbirDruga, zbirObe, zbirNula)){
            cout << "nemoguce\n";
            return 0;
        }

//ZAPISIVANJE
        zalihaO -= zbirNula;

        //A
        Grupe temp;
        for(int i = 0; i < brojPrva; i++){
            temp = pacijenti[prva[i]];
            if(temp.komada <= zalihaA){
                zalihaA -= temp.komada;
                temp.a = temp.komada;
            }
            else{
                temp.a = zalihaA;
                zalihaA = 0;

                temp.o = temp.komada - temp.a;
                zalihaO -= temp.o;
            }
            pacijenti[prva[i]] = temp;
        }

        //B
        for(int i = 0; i < brojDruga; i++){
            temp = pacijenti[druga[i]];
            if(temp.komada <= zalihaB){
                zalihaB -= temp.komada;
                temp.b = temp.komada;
            }
            else{
                temp.b = zalihaB;
                zalihaB = 0;

                temp.o = temp.komada - temp.b;
                zalihaO -= temp.o;
            }
            pacijenti[druga[i]] = temp;
        }

        //AB
        for(int i = 0; i < brojObe; i++){
            temp = pacijenti[obe[i]];
            if(temp.komada <= zalihaAB){
                zalihaAB -= temp.komada;
                temp.ab = temp.komada;
            }
            else if(temp.komada <= zalihaA + zalihaB + zalihaAB + zalihaO){
                // cout << zalihaA << " " << zalihaB << " " << zalihaAB << " " << zalihaO << "\n";
                temp.ab = zalihaAB;
                zalihaAB = 0;
                temp.komada -= temp.ab;

                if(temp.komada <= zalihaA){
                    temp.a = temp.komada;
                    zalihaA -= temp.a;
                }
                else{
                    temp.a = zalihaA;
                    zalihaA = 0;
                    temp.komada -= temp.a;
                    if(temp.komada <= zalihaB){
                        temp.b = temp.komada;
                        zalihaB -= temp.b;
                    }
                    else {
                        temp.b = zalihaB;
                        zalihaB = 0;
                        temp.o = temp.komada - temp.b;
                        zalihaO -= temp.o;
                    }
                }
            }

            pacijenti[obe[i]] = temp;
        }


//ISPISIVANJE
        cout << "moguce\n";
        for(int i = 0;  i < n; i++){
            cout << pacijenti[i].o << " " << pacijenti[i].a << " " << pacijenti[i].b << " " << pacijenti[i].ab << "\n";
        }


        return 0;
}