#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n, o, a, b, ab;
    scanf("%i %i %i %i %i", &n, &o, &a, &b, &ab);
    int resenje[n][4], ulaz;
    char krvna[2];
    int listaO[n][2], listaA[n][2], listaB[n][2], listaAB[n][2];
    int kolikoO = 0, kolikoA = 0, kolikoB = 0, kolikoAB = 0;
    for (int i = 0; i < n; i++) {
        resenje[i][0] = 0;
        resenje[i][1] = 0;
        resenje[i][2] = 0;
        resenje[i][3] = 0;
        scanf("%s %i", &krvna, &ulaz);
        switch (krvna[0]) {
        case 'A':
            if (krvna[1] == 'B') {
                listaAB[kolikoAB][0] = i;
                listaAB[kolikoAB++][1] = ulaz;
            } else {
                listaA[kolikoA][0] = i;
                listaA[kolikoA++][1] = ulaz;
            }
            break;
        case 'B':
            listaB[kolikoB][0] = i;
            listaB[kolikoB++][1] = ulaz;
            break;
        case 'O':
            listaO[kolikoO][0] = i;
            listaO[kolikoO++][1] = ulaz;
            break;
        }
    }
    int i;
    for (i = 0; i < kolikoO; i++) {
        resenje[listaO[i][0]][0] = listaO[i][1];
        o -= resenje[listaO[i][0]][0];
        if (o < 0) {
            printf("nemoguce");
            return 0;
        }
    }

    for (i = 0; i < kolikoA; i++) {
        resenje[listaA[i][0]][1] = listaA[i][1];
        a -= resenje[listaA[i][0]][1];
        listaA[i][1] -= resenje[listaA[i][0]][1];
        if (a <= 0) {
            resenje[listaA[i][0]][1] += a;
            listaA[i][1] = -a;
            a = 0;
            break;
        }
    }
    for (i; i < kolikoA; i++) {
        o -= resenje[listaA[i][0]][0] = listaA[i][1];
        if (o < 0) {
            printf("nemoguce");
            return 0;
        }
    }

    for (i = 0; i < kolikoB; i++) {
        resenje[listaB[i][0]][2] = listaB[i][1];
        b -= resenje[listaB[i][0]][2];
        listaB[i][1] -= resenje[listaA[i][0]][2];
        if (b <= 0) {
            resenje[listaB[i][0]][2] += b;
            listaB[i][1] = -b;
            b = 0;
            break;
        }
    }
    for (i; i < kolikoB; i++) {
        resenje[listaB[i][0]][0] = listaB[i][1];
        o -= resenje[listaB[i][0]][0];
        if (o < 0) {
            printf("nemoguce");
            return 0;
        }
    }

    for (i = 0; i < kolikoAB; i++) {
        resenje[listaAB[i][0]][3] = listaAB[i][1];
        ab -= resenje[listaAB[i][0]][3];
        listaAB[i][1] -= resenje[listaAB[i][0]][3];
        if (ab <= 0) {
            resenje[listaAB[i][0]][3] += ab;
            listaAB[i][1] = -ab;
            ab = 0;
            break;
        }
    }
    for (i; i < kolikoAB; i++) {
        resenje[listaAB[i][0]][2] = listaAB[i][1];
        b -= resenje[listaAB[i][0]][2];
        listaAB[i][1] -= resenje[listaAB[i][0]][2];
        if (b <= 0) {
            resenje[listaAB[i][0]][2] += b;
            listaAB[i][1] = -b;
            b = 0;
            break;
        }
    }
    for (i; i < kolikoAB; i++) {
        resenje[listaAB[i][0]][1] = listaAB[i][1];
        a -= resenje[listaAB[i][0]][1];
        listaAB[i][1] -= resenje[listaAB[i][0]][1];
        if (a <= 0) {
            resenje[listaAB[i][0]][1] += a;
            listaAB[i][1] = -a;
            a = 0;
            break;
        }
    }
    for (i; i < kolikoAB; i++) {
        resenje[listaAB[i][0]][0] = listaAB[i][1];
        o -= resenje[listaAB[i][0]][0];
        if (o < 0) {
            printf("nemoguce");
            return 0;
        }
    }

    printf("moguce\n");
    for (int i = 0; i < n; i++) {
        printf("%i %i %i %i\n", resenje[i][0], resenje[i][1], resenje[i][2], resenje[i][3]);
    }
    return 0;
}