#include <iostream>
#include <bits/stdc++.h>

using namespace std;


map <string, int> prioriteti {
  {"O", 0},
  {"A", 1},
  {"B", 2},
  {"AB", 3}
};

struct Pacijent {
  string grupa;
  int br;
  int n_o = 0, n_a = 0, n_b = 0, n_ab = 0;
};

bool compare (Pacijent p1, Pacijent p2) {
  return prioriteti[p1.grupa] < prioriteti[p2.grupa];
}

int main() {
  int n,i;
  int s_o = 0, s_a = 0, s_b = 0, s_ab = 0;
  bool moguce = true;

  cin >> n;
  map<string, int> zalihe;
  cin >> zalihe["O"] >> zalihe["A"] >> zalihe["B"] >> zalihe["AB"];

  Pacijent pacijenti[n];
  for (i = 0; i < n; i++) {
    cin >> pacijenti[i].grupa >> pacijenti[i].br;
  }
  
  for (i = 0; i < n; i++) {
    if (pacijenti[i].grupa == "O") {
        if (pacijenti[i].br <= zalihe["O"]) {
          zalihe["O"] -= pacijenti[i].br;
          pacijenti[i].n_o = pacijenti[i].br;
      }
      else {
        cout << "nemoguce";
        moguce = false;
        break;
      }
    }

     if (pacijenti[i].grupa == "A") {
       if (pacijenti[i].br <= zalihe["O"] + zalihe["A"]) {
          if (pacijenti[i].br <= zalihe["A"]) {
            pacijenti[i].n_a = pacijenti[i].br;
            zalihe["A"] -= pacijenti[i].br;
          }       
          else {
            pacijenti[i].n_a = zalihe["A"];
            pacijenti[i].br -= zalihe["A"];
            zalihe["A"] = 0;
            zalihe["O"] -= pacijenti[i].br;
            pacijenti[i].n_o = pacijenti[i].br;
          }
       }
       else {
          cout << "nemoguce";
          moguce = false;
          break;
        }
     }

     if (pacijenti[i].grupa == "B") {
       if (pacijenti[i].br <= zalihe["O"] + zalihe["B"]) {
          if (pacijenti[i].br <= zalihe["B"]) {
            pacijenti[i].n_b = pacijenti[i].br;
            zalihe["B"] -= pacijenti[i].br;
          }       
          else {
            pacijenti[i].n_b = zalihe["B"];
            pacijenti[i].br -= zalihe["B"];
            zalihe["B"] = 0;
            zalihe["O"] -= pacijenti[i].br;
            pacijenti[i].n_o = pacijenti[i].br;
          }
       }
       else {
          cout << "nemoguce";
          moguce = false;
          break;
       }
     }

     if (pacijenti[i].grupa == "AB") {
       if (pacijenti[i].br <= zalihe["O"] + zalihe["A"] + zalihe["B"] + zalihe["AB"]) {
          pacijenti[i].br -= zalihe["AB"];
          if (pacijenti[i].br > 0) {
            pacijenti[i].n_ab = zalihe["AB"];
            zalihe["AB"] = 0;
          }
          else {
            pacijenti[i].n_ab = zalihe["AB"] + pacijenti[i].br;
            zalihe["AB"] -= pacijenti[i].n_ab;
            continue;
          }

          pacijenti[i].br -= zalihe["B"];
          if (pacijenti[i].br > 0) {
            pacijenti[i].n_b = zalihe["B"];
            zalihe["B"] = 0;
          }
          else {
            pacijenti[i].n_b = zalihe["B"] + pacijenti[i].br;
            zalihe["B"] -= pacijenti[i].n_b;
            continue;
          }

          pacijenti[i].br -= zalihe["A"];
          if (pacijenti[i].br > 0) {
            pacijenti[i].n_a = zalihe["A"];
            zalihe["A"] = 0;
          }
          else {
            pacijenti[i].n_a = zalihe["a"] + pacijenti[i].br;
            zalihe["a"] -= pacijenti[i].n_a;
            continue;
          }

          pacijenti[i].br -= zalihe["O"];
          if (pacijenti[i].br > 0) {
            pacijenti[i].n_o = zalihe["O"];
            zalihe["O"] = 0;
          }
          else {
            pacijenti[i].n_o = zalihe["O"] + pacijenti[i].br;
            zalihe["O"] -= pacijenti[i].n_o;
            continue;
          }

       }
       else {
          cout << "nemoguce";
          moguce = false;
          break;
       }
     }
  }
  
  if (moguce) {
    cout << "moguce\n";
    for (i = 0; i < n; i++) 
      cout << pacijenti[i].n_o << " " << pacijenti[i].n_a << " " << pacijenti[i].n_b << " " << pacijenti[i].n_ab << "\n";
  }

}