#include<bits/stdc++.h>

using namespace std;

struct Pacijent{

    string kg;
    long int p;

};

int main(void)
{
    long int N;
    int ir = 1;
    long int ukupne_zalihe = 0;
    long int ukupne_potrebe = 0;
    long int ukupne_potrebe_A = 0;
    long int ukupne_potrebe_B = 0;
    long int ukupne_potrebe_O = 0;
    long int ukupne_potrebe_AB = 0;
    cin>>N;

    long int zalihe[4];
    long int rezultati_pacijenata[N][4];

    for(int i= 0; i<N; ++i)
        for(int j=0; j<4; ++j)
            rezultati_pacijenata[i][j]=0;

    for(int i=0; i<4; ++i){
        cin>>zalihe[i];
        ukupne_zalihe += zalihe[i];
    }

    Pacijent pacijenti[N];
    for(int i=0; i<N; ++i){
        cin>>pacijenti[i].kg>>pacijenti[i].p;
        if(pacijenti[i].kg == "A")
            ukupne_potrebe_A += pacijenti[i].p;
        else if(pacijenti[i].kg == "B")
            ukupne_potrebe_B += pacijenti[i].p;
        else if(pacijenti[i].kg == "AB")
            ukupne_potrebe_AB += pacijenti[i].p;
        else if(pacijenti[i].kg == "O")
            ukupne_potrebe_O += pacijenti[i].p;
    }

    // cout<<ukupne_potrebe_O<<endl<<endl;

    ukupne_potrebe = ukupne_potrebe_A + ukupne_potrebe_B + ukupne_potrebe_AB + ukupne_potrebe_O;

    if(ukupne_potrebe > ukupne_zalihe)
        ir = 0;
    else if(ukupne_potrebe_O > zalihe[0])
        ir = 0;
    else if(ir!=0){
        for(int i = 0; i < N && ir !=0; ++i){
            if(pacijenti[i].kg == "O"){
                if(zalihe[0]!= 0){
                    rezultati_pacijenata[i][0] += pacijenti[i].p;
                    zalihe[0]-= pacijenti[i].p;
                    ukupne_potrebe_O -= pacijenti[i].p;
                    pacijenti[i].p = 0;
                }
                else
                    ir = 0;
            }
            else if(pacijenti[i].kg == "A"){
                if(zalihe[1]!= 0){
                    if(pacijenti[i].p <= zalihe[1]){
                        rezultati_pacijenata[i][1] += pacijenti[i].p;
                        zalihe[1]-= pacijenti[i].p;
                        ukupne_potrebe_A -= pacijenti[i].p;
                        pacijenti[i].p = 0;
                    }
                    else if(pacijenti[i].p > zalihe[1]){
                        rezultati_pacijenata[i][1] += zalihe[1];
                        pacijenti[i].p -= zalihe[1];
                        ukupne_potrebe_A -= zalihe[1];
                        zalihe[1] = 0;
                    }
                }

                if(pacijenti[i].p != 0){
                    if(zalihe[0]!= 0){
                        if(pacijenti[i].p <= zalihe[0]){
                            rezultati_pacijenata[i][0] += pacijenti[i].p;
                            zalihe[0]-= pacijenti[i].p;
                            ukupne_potrebe_A -= pacijenti[i].p;
                            pacijenti[i].p = 0;
                        }
                        else if(pacijenti[i].p > zalihe[0]){
                            ir = 0;
                            //izadji iz programa
                        }
                    }
                }

            }
            else if(pacijenti[i].kg == "B"){
                if(zalihe[2]!= 0){
                    if(pacijenti[i].p <= zalihe[2]){
                        rezultati_pacijenata[i][2] += pacijenti[i].p;
                        zalihe[2]-= pacijenti[i].p;
                        ukupne_potrebe_B -= pacijenti[i].p;
                        pacijenti[i].p = 0;
                    }
                    else if(pacijenti[i].p > zalihe[2]){
                        rezultati_pacijenata[i][2] += zalihe[2];
                        pacijenti[i].p -= zalihe[2];
                        ukupne_potrebe_B -= zalihe[2];
                        zalihe[2] = 0;
                    }

                }

                if(pacijenti[i].p != 0){
                    if(zalihe[0]!= 0){
                        if(pacijenti[i].p <= zalihe[0]){
                            rezultati_pacijenata[i][0] += pacijenti[i].p;
                            zalihe[0]-= pacijenti[i].p;
                            ukupne_potrebe_B -= pacijenti[i].p;
                            pacijenti[i].p = 0;
                        }
                        else if(pacijenti[i].p > zalihe[0]){
                            ir = 0;
                            //izadji iz programa
                        }
                    }
                }
            }
            else if(pacijenti[i].kg == "AB"){
                    if(zalihe[3]!= 0){
                        if(pacijenti[i].p <= zalihe[3]){
                            rezultati_pacijenata[i][3] += pacijenti[i].p;
                            zalihe[3]-= pacijenti[i].p;
                            ukupne_potrebe_AB -= pacijenti[i].p;
                            pacijenti[i].p = 0;
                        }
                        else if(pacijenti[i].p > zalihe[3]){
                            rezultati_pacijenata[i][3] += zalihe[3];
                            pacijenti[i].p -= zalihe[3];
                            ukupne_potrebe_AB -= zalihe[3];
                            zalihe[3] = 0;
                        }
                    }

                    if(ukupne_potrebe_O < zalihe[0]){
                        if(pacijenti[i].p != 0){
                            if(zalihe[0]!=0){
                                if(pacijenti[i].p <= zalihe[0]){
                                    rezultati_pacijenata[i][0] += pacijenti[i].p;
                                    zalihe[0]-= pacijenti[i].p;
                                    ukupne_potrebe_AB -= pacijenti[i].p;
                                    pacijenti[i].p = 0;
                                }
                                else if(pacijenti[i].p > zalihe[0]){
                                    rezultati_pacijenata[i][0] += zalihe[0];
                                    pacijenti[i].p -= zalihe[0];
                                    ukupne_potrebe_AB -= zalihe[0];
                                    zalihe[0] = 0;
                                }
                            }
                        }
                    }

                    if(ukupne_potrebe_A < zalihe[1]){
                        if(pacijenti[i].p != 0){
                            if(zalihe[1]!=0){
                                if(pacijenti[i].p <= zalihe[1]){
                                    rezultati_pacijenata[i][1] += pacijenti[i].p;
                                    zalihe[1]-= pacijenti[i].p;
                                    ukupne_potrebe_AB -= pacijenti[i].p;
                                    pacijenti[i].p = 0;
                                }
                                else if(pacijenti[i].p > zalihe[1]){
                                    rezultati_pacijenata[i][1] += zalihe[1];
                                    pacijenti[i].p -= zalihe[1];
                                    ukupne_potrebe_AB -= zalihe[1];
                                    zalihe[1] = 0;
                                }
                            }
                        }
                    }

                    if(ukupne_potrebe_B < zalihe[2]){
                        if(pacijenti[i].p != 0){
                            if(zalihe[2]!=0){
                                if(pacijenti[i].p <= zalihe[2]){
                                    rezultati_pacijenata[i][2] += pacijenti[i].p;
                                    zalihe[2]-= pacijenti[i].p;
                                    ukupne_potrebe_AB -= pacijenti[2].p;
                                    pacijenti[i].p = 0;
                                }
                                else if(pacijenti[i].p > zalihe[2]){
                                    ir = 0;
                                }
                            }
                        }
                    }
                    if(pacijenti[i].p != 0){
                        ir = 0;
                    }
            }

        }
    }


    if(ir!=0)
    {
        cout<<"moguce"<<endl;
        for(int i=0; i<N;++i){
            for(int j=0; j<4;++j)
                cout<<rezultati_pacijenata[i][j]<<" ";

            cout<<endl;
        }
    }
    else
        cout<<"nemoguce";

    return 0;
}