#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <iostream>

using namespace std;

int trazi_O[1][10069];
int trazi_A[1][10069];
int trazi_B[1][10069];
int trazi_AB[1][10069];
int dobija_O[10069];
int dobija_A[10069];
int dobija_B[10069];
int dobija_AB[10069];

int main()
{
    ios_base::sync_with_stdio(false);
    int n;
    cin>>n;
    string a;
    int f;
    int zaliha_O = 0;
    int zaliha_A = 0;
    int zaliha_B = 0;
    int zaliha_AB = 0;
    int O=0;
    int A=0;
    int B=0;
    int AB=0;
    cin>>zaliha_O>>zaliha_A>>zaliha_B>>zaliha_AB;
    for(int i = 0; i<n; i++)
    {
        cin>>a;
        cin>>f;
        if(a=="O") {trazi_O[0][O]=f; trazi_O[1][O]=i; O++;}
        else if(a=="A") {trazi_A[0][A]=f; trazi_A[1][A]=i; A++;}
        else if(a=="B") {trazi_B[0][B]=f; trazi_B[1][B]=i; B++;}
        else if(a=="AB") {trazi_AB[0][AB]=f; trazi_AB[1][AB]=i; AB++;}
    }
    int j = 0;
    bool p = true;
    while(j<O && p)
    {
        if(zaliha_O-trazi_O[0][j]>=0)
        {
            zaliha_O-=trazi_O[0][j];
            dobija_O[trazi_O[1][j]]+=trazi_O[0][j];
        }
        else p = false;
        j++;
    }
    j=0;
    while(j<A && p)
    {
        if(zaliha_A-trazi_A[0][j]>=0)
        {
            zaliha_A-=trazi_A[0][j];
            dobija_A[trazi_A[1][j]]+=trazi_A[0][j];
        }
        else if(zaliha_O-(trazi_A[0][j]-zaliha_A)>=0)
        {
            zaliha_O-=trazi_A[0][j]-zaliha_A;
            dobija_O[trazi_A[1][j]]+=trazi_A[0][j]-zaliha_A;
            dobija_A[trazi_A[1][j]]+=zaliha_A;
            zaliha_A=0;
        }
        else p = false;
        j++;
    }
    j=0;
    while(j<B && p)
    {
        if(zaliha_B-trazi_B[0][j]>=0)
        {
            zaliha_B-=trazi_B[0][j];
            dobija_B[trazi_B[1][j]]+=trazi_A[0][j];
        }
        else if(zaliha_O-(trazi_B[0][j]-zaliha_B)>=0)
        {
            zaliha_O-=trazi_B[0][j]-zaliha_B;
            dobija_O[trazi_B[1][j]]+=trazi_B[0][j]-zaliha_B;
            dobija_B[trazi_B[1][j]]+=zaliha_B;
            zaliha_B=0;
        }
        else p = false;
        j++;
    }
    j=0;
    while(j<AB && p)
    {
        if(zaliha_AB-trazi_AB[0][j]>=0)
        {
            zaliha_AB-=trazi_AB[0][j];
            dobija_AB[trazi_AB[1][j]]+=trazi_A[0][j];
        }
        else if(zaliha_O-(trazi_AB[0][j]-zaliha_AB)>=0)
        {
            zaliha_O-=trazi_O[0][j]-zaliha_AB;
            dobija_O[trazi_AB[1][j]]+=trazi_AB[0][j]-zaliha_AB;
            dobija_AB[trazi_AB[1][j]]+=zaliha_AB;
            zaliha_AB=0;
        }
        else if(zaliha_A-(trazi_AB[0][j]-zaliha_AB-zaliha_O)>=0)
        {
            zaliha_A-=trazi_O[0][j]-zaliha_AB-zaliha_O;
            dobija_A[trazi_AB[1][j]]+=trazi_AB[0][j]-zaliha_AB-zaliha_O;
            dobija_A[trazi_AB[1][j]]+=zaliha_A;
            dobija_O[trazi_AB[1][j]]+=zaliha_O;
            zaliha_AB=0;
            zaliha_O=0;
        }
        else if(zaliha_B-(trazi_AB[0][j]-zaliha_AB-zaliha_O-zaliha_A)>=0)
        {
            zaliha_A-=trazi_O[0][j]-zaliha_AB-zaliha_O-zaliha_A;
            dobija_A[trazi_AB[1][j]]+=trazi_AB[0][j]-zaliha_AB-zaliha_O-zaliha_A;
            dobija_A[trazi_AB[1][j]]+=zaliha_A;
            dobija_O[trazi_AB[1][j]]+=zaliha_O;
            dobija_B[trazi_AB[1][j]]+=zaliha_B;
            zaliha_AB=0;
            zaliha_O=0;
            zaliha_A=0;
        }
        else p = false;
        j++;
    }
    j=0;
    if(p==false) cout<<"nemoguce";
    else
    {
        cout<<"moguce"<<endl;
        for(int i = 0; i<n; i++)
        {
            cout<<dobija_O[i]<<" "<<dobija_A[i]<<" "<<dobija_B[i]<<" "<<dobija_AB[i]<<endl;
        }
    }
    ///vise reci nego pismeni zadatak prokleti
    return 0;
}