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

int racun(int *X, int *O, int N, int pacijenti[N][4], int pacijentj, int *moguce, int i, int x){
	if(*X-pacijentj == 0){
        *X = 0;
        pacijenti[i][x] = pacijentj;
    }
    else if(*X-pacijentj < 0){
        pacijenti[i][x] = *X;
		pacijentj -= *X;
        *X = 0;
        if(*O-pacijentj == 0){
            *O = 0;
            pacijenti[i][0] = pacijentj;
        }
        else if(*O-pacijentj < 0){
            *moguce = 1;
            return 0;
        }
        else{
            *O -= pacijentj;
            pacijenti[i][0] = pacijentj;
        }
    }
    else{
        *X -= pacijentj;
        pacijenti[i][x] = pacijentj;
    }
}

int racuno(int *X, int N, int pacijenti[N][4], int pacijentj, int *moguce, int i, int x){
	if(*X-pacijentj == 0){
        *X = 0;
        pacijenti[i][x] = pacijentj;
    }
    else if(*X-pacijentj < 0){
        *moguce = 1;
        return 0;
    }
    else{
        *X -= pacijentj;
        pacijenti[i][x] = pacijentj;
    }
}

int racunab(int *X, int *A, int *B, int *O, int N, int pacijenti[N][4], int pacijentj, int *moguce, int i, int x){
	if(*X-pacijentj == 0){
        *X = 0;
        pacijenti[i][x] = pacijentj;
    }
    else if(*X-pacijentj < 0){
        pacijenti[i][x] = *X;
		pacijentj -= *X;
        *X = 0;
        if(*A-pacijentj == 0){
            *A = 0;
            pacijenti[i][0] = pacijentj;
        }
        else if(*A-pacijentj < 0){
	        if(*B-pacijentj == 0){
	            *B = 0;
	            pacijenti[i][0] = pacijentj;
	        }
	        else if(*B-pacijentj < 0){
		        if(*O-pacijentj == 0){
		            *O = 0;
		            pacijenti[i][0] = pacijentj;
		        }
		        else if(*O-pacijentj < 0){
		            *moguce = 1;
		            return 0;
		        }
		        else{
		            *O -= pacijentj;
		            pacijenti[i][0] = pacijentj;
		        }
	        }
	        else{
	        	*B -= pacijentj;
	       		pacijenti[i][2] = pacijentj;
			}
        }
        else{
        	*A -= pacijentj;
       		pacijenti[i][1] = pacijentj;
		}
    }
    else{
        *X -= pacijentj;
        pacijenti[i][x] = pacijentj;
    }
}

int main(){
    int i, j, N, O, A, B, AB, pacijentj, moguce=0;
    char pacijentkg[3];
    printf("Unesi broj pacijenata: ");
    scanf("%d", &N);
    scanf("%d %d %d %d", &O, &A, &B, &AB);
    int pacijenti[N][4];
    for(i=0;i<N;i++){
    	for(j=0;j<4;j++){
    		pacijenti[i][j] = 0;
		}
	}
    for(i=0;i<N;i++){
        scanf("%s %d", &pacijentkg, &pacijentj);
        if(!strcmp(pacijentkg, "O")){
        	racuno(&O, N, pacijenti, pacijentj, &moguce, i, 0);
        }
        else if(!strcmp(pacijentkg, "A")){
        	racun(&A, &O, N, pacijenti, pacijentj, &moguce, i, 1);
        }
        else if(!strcmp(pacijentkg, "B")){
        	racun(&B, &O, N, pacijenti, pacijentj, &moguce, i, 2);
        }
        else if(!strcmp(pacijentkg, "AB")){
        	racunab(&AB, &A, &B, &O, N, pacijenti, pacijentj, &moguce, i, 3);
        }
    }
    if(moguce == 0){
        printf("moguce\n");
        for(i=0;i<N;i++){
	    	for(j=0;j<4;j++){
	    		printf("%d ", pacijenti[i][j]);
			}
			printf("\n");
		}
    }
    else{
        printf("nemoguce");
    }
    
}