#include <iostream>
using std::cout;
using std::cin;
using std::string;
using std::min;
using std::max;

int main()
{
    int n;
    bool ne = false;
    int brJedinica[4];
    cin >> n;
    for(int i=0;i<4;i++)
        cin >> brJedinica[i];
    string oz[n];
    int br[n];
    int ozInt[n];
    int ABGrupe[n];
    int brojAB = 0;
    for(int i=0;i<n;i++)
    {
        cin >> oz[i] >> br[i];
        if(oz[i] == "O")
            ozInt[i] = 0;
        if(oz[i] == "A")
            ozInt[i] = 1;
        if(oz[i] == "B")
            ozInt[i] = 2;
        if(oz[i] == "AB")
        {
            ozInt[i] = 3;
            ABGrupe[brojAB] = i;
            brojAB++;
        }
    }
    int matrix[n][4];
//-----------------------------------------

    for(int i=0;i<n;i++)
    {
        for(int j=3;j>=0;j--)
            {
            if(ozInt[i]<=1){
                if(j<=ozInt[i]){
                    matrix[i][j]=min(brJedinica[j],br[i]);
                    int x = brJedinica[j];
                    brJedinica[j]=max(0,brJedinica[j]-br[i]);
                    br[i]=max(0,br[i]-x);
                }
                else{
                matrix[i][j]=0;
                }
            }
            else if (ozInt[i]==2)
            {
                if(j==ozInt[i] || j==0)
                {
                    matrix[i][j] = min(brJedinica[j],br[i]);
                    int x = brJedinica[j];
                    brJedinica[j] = max(0,brJedinica[j]-br[i]);
                    br[i] = max(0,br[i]-x);
                }
                else{
                matrix[i][j] = 0;
                }
            }
            else
                matrix[i][j] = 0;

        }
        if(br[i]>0 && ozInt[i] != 3)
        {
            ne = true;
            break;
        }
    }
    for(int i=0;i<brojAB;i++)
        {
        for(int j=3;j>=0;j--)
        {
            matrix[ABGrupe[i]][j] = min(brJedinica[j],br[ABGrupe[i]]);
            int x = brJedinica[j];
            brJedinica[j] = max(0,brJedinica[j]-br[ABGrupe[i]]);
            br[ABGrupe[i]] = max(0,br[ABGrupe[i]]-x);
        }
        if(br[ABGrupe[i]]>0){
            ne = true;
            break;
        }
    }

    if(ne == true)
        cout << "nemoguce" << '\n';
    else
    {
    cout << "moguce" << '\n';
    for(int i=0;i<n;i++){
        for(int j=0;j<4;j++){
            cout << matrix[i][j] << " ";
        }
        cout << '\n';
    }
}
    return 0;
}