#include <bits/stdc++.h>

using namespace std;

int zaliheO,zaliheA,zaliheB,zaliheAB;

int ABprovera(int nizkrvnihgrupa[],int i,int k)
{
    int x=0;
    if(k==1)
    {
        if(nizkrvnihgrupa[i]>=zaliheO)
        {
            x=zaliheO;
            nizkrvnihgrupa[i]=nizkrvnihgrupa[i]-zaliheO;
            zaliheO=0;
        }else{
            x=nizkrvnihgrupa[i];
            nizkrvnihgrupa[i]=0;
            zaliheO=zaliheO-nizkrvnihgrupa[i];
        }
    }
    if(k==2)
    {
        if(nizkrvnihgrupa[i]>=zaliheA)
        {
            x=zaliheA;
            nizkrvnihgrupa[i]=nizkrvnihgrupa[i]-zaliheA;
            zaliheA=0;
        }else{
            x=nizkrvnihgrupa[i];
            nizkrvnihgrupa[i]=0;
            zaliheA=zaliheA-nizkrvnihgrupa[i];
        }
    }
    if(k==3)
    {
        if(nizkrvnihgrupa[i]>=zaliheB)
        {
            x=zaliheB;
            nizkrvnihgrupa[i]=nizkrvnihgrupa[i]-zaliheB;
            zaliheB=0;
        }else{
            x=nizkrvnihgrupa[i];
            nizkrvnihgrupa[i]=0;
            zaliheB=zaliheB-nizkrvnihgrupa[i];
        }
    }
    if(k==4)
    {
        if(nizkrvnihgrupa[i]>=zaliheAB)
        {
            x=zaliheAB;
            nizkrvnihgrupa[i]=nizkrvnihgrupa[i]-zaliheAB;
            zaliheAB=0;
        }else{
            x=nizkrvnihgrupa[i];
            nizkrvnihgrupa[i]=0;
            zaliheAB=zaliheAB-nizkrvnihgrupa[i];
        }
    }
    return x;
}

int provera(int O,int A,int B,int AB,int zO,int zA,int zB,int zAB)
{
    if(O>zO)
    {
        cout<<"nemoguce";
        return 0;
    }else{
        zO=zO-O;
    }
    if(A>(zA+zO))
    {
        cout<<"nemoguce";
        return 0;
    }else{
        if(A>zA)
        {
            A=A-zA;
            zA=0;
            zO=zO-A;
            A=0;
        }else{
            zA=zA-A;
            A=0;
        }
    }
    if(B>(zB+zO))
    {
        cout<<"nemoguce";
        return 0;
    }else{
        if(B>zB)
        {
            B=B-zB;
            zB=0;
            zO=zO-B;
            B=0;
        }else{
            zB=zB-B;
            B=0;
        }
    }
    if(AB>(zO+zA+zB+zAB))
    {
        cout<<"nemoguce";
        return 0;
    }
}

void ispis(int nizpacijenata[],int nizkrvnihgrupa[],int n)
{
    for(int i=0;i<n;i++)
    {
        if(nizpacijenata[i]==1)//O
        {
            cout<<nizkrvnihgrupa[i]<<" "<<0<<" "<<0<<" "<<0<<endl;
            zaliheO=zaliheO-nizkrvnihgrupa[i];
        }
        if(nizpacijenata[i]==2)//A
        {
            if(nizkrvnihgrupa[i]>zaliheA)
            {
                nizkrvnihgrupa[i]=nizkrvnihgrupa[i]-zaliheA;
                cout<<nizkrvnihgrupa[i]<<" "<<zaliheA<<" "<<0<<" "<<0<<endl;
                zaliheA=0;
                zaliheO=zaliheO-nizkrvnihgrupa[i];
                nizkrvnihgrupa[i]=0;
            }else{
                cout<<0<<" "<<nizkrvnihgrupa[i]<<" "<<0<<" "<<0<<endl;
                zaliheA=zaliheA-nizkrvnihgrupa[i];
                nizkrvnihgrupa[i]=0;
            }
        }
        if(nizpacijenata[i]==3)//B
        {
            if(nizkrvnihgrupa[i]>zaliheB)
            {
                nizkrvnihgrupa[i]=nizkrvnihgrupa[i]-zaliheB;
                cout<<nizkrvnihgrupa[i]<<" "<<0<<" "<<zaliheB<<" "<<0<<endl;
                zaliheB=0;
                zaliheO=zaliheO-nizkrvnihgrupa[i];
                nizkrvnihgrupa[i]=0;
            }else{
                cout<<0<<" "<<0<<" "<<nizkrvnihgrupa[i]<<" "<<0<<endl;
                zaliheB=zaliheB-nizkrvnihgrupa[i];
                nizkrvnihgrupa[i]=0;
            }
        }
        if(nizpacijenata[i]==4)//AB
        {
            int O,A,B,AB;
            O=ABprovera(nizkrvnihgrupa,i,1);
            A=ABprovera(nizkrvnihgrupa,i,2);
            B=ABprovera(nizkrvnihgrupa,i,3);
            AB=ABprovera(nizkrvnihgrupa,i,4);
            cout<<O<<" "<<A<<" "<<B<<" "<<AB<<endl;
        }
    }
}

int main()
{
    int n,O=0,A=0,B=0,AB=0;
    cin>>n;
    int nizpacijenata[n],nizkrvnihgrupa[n];
    cin>>zaliheO>>zaliheA>>zaliheB>>zaliheAB;
    for(int i=0;i<n;i++)
    {
       string grupa;
       cin>>grupa;
       cin>>nizkrvnihgrupa[i];
       if(grupa=="O")
       {
           nizpacijenata[i]=1;
           O=O+nizkrvnihgrupa[i];
       }
       if(grupa=="A")
       {
           nizpacijenata[i]=2;
           A=A+nizkrvnihgrupa[i];
       }
       if(grupa=="B")
       {
           nizpacijenata[i]=3;
           B=B+nizkrvnihgrupa[i];
       }
       if(grupa=="AB")
       {
           nizpacijenata[i]=4;
           AB=AB+nizkrvnihgrupa[i];
       }
    }
    int r=1;
    r=provera(O,A,B,AB,zaliheO,zaliheA,zaliheB,zaliheAB);
    if(r==0)
    {
        return 0;
    }
    cout<<"moguce"<<endl;
    ispis(nizpacijenata,nizkrvnihgrupa,n);
    return 0;
}