#include <bits/stdc++.h>
using namespace std;
const uint32_t mod7 = uint32_t(1000000007);
const uint32_t mod9 = uint32_t(1000000009);
const int32_t inf31 = numeric_limits<int32_t>::max();
const uint32_t inf32 = numeric_limits<uint32_t>::max();
const int64_t inf63 = numeric_limits<int64_t>::max();
const uint64_t inf64 = numeric_limits<uint64_t>::max();
uint32_t compute_like(uint32_t g1s, uint32_t g2s, uint32_t g3s,
                      vector<vector<uint32_t>>& likes) {
  uint32_t like = 0;
  vector<uint32_t> perm = {0, 1, 2, 3, 4, 5, 6};
  do {
    vector<uint32_t> g1, g2, g3;
    for (uint32_t i = 0; i < g1s; ++i) g1.push_back(perm[i]);
    for (uint32_t i = g1s; i < g1s + g2s; ++i) g2.push_back(perm[i]);
    for (uint32_t i = g1s + g2s; i < g1s + g2s + g3s; ++i)
      g3.push_back(perm[i]);
    uint32_t cl = 0;
    for (uint32_t x : g1) {
      for (uint32_t y : likes[x]) {
        if (find(g1.begin(), g1.end(), y) != g1.end()) {
          ++cl;
        }
      }
    }
    for (uint32_t x : g2) {
      for (uint32_t y : likes[x]) {
        if (find(g2.begin(), g2.end(), y) != g2.end()) {
          ++cl;
        }
      }
    }
    for (uint32_t x : g3) {
      for (uint32_t y : likes[x]) {
        if (find(g3.begin(), g3.end(), y) != g3.end()) {
          ++cl;
        }
      }
    }
    if (cl > like) like = cl;
  } while (next_permutation(perm.begin(), perm.end()));
  return like;
}
uint32_t compute_diff(uint32_t i, uint32_t j, uint32_t k, uint32_t a,
                      uint32_t b, uint32_t c) {
  return max(max(a / i, b / j), c / k) - min(min(a / i, b / j), c / k);
}
int32_t main(int32_t argc, char const* argv[]) {
  ios::sync_with_stdio(0);
  cin.tie(0);
  map<string, uint32_t> player_map = {
      {"Anka", 0},   {"Chapay", 1}, {"Cleo", 2},       {"Troll", 3},
      {"Dracul", 4}, {"Snowy", 5},  {"Hexadecimal", 6}};
  uint32_t n;
  cin >> n;
  vector<vector<uint32_t>> likes(7);
  for (uint32_t i = 0; i < n; ++i) {
    string p, _, q;
    cin >> p >> _ >> q;
    likes[player_map[p]].push_back(player_map[q]);
  }
  uint32_t a, b, c;
  cin >> a >> b >> c;
  vector<uint32_t> vars = {a, b, c};
  uint32_t mindiff = inf32;
  uint32_t maxlike = 0;
  for (uint32_t i = 1; i < 7; ++i) {
    for (uint32_t j = 1; j < 7; ++j) {
      for (uint32_t k = 1; k < 7; ++k) {
        if (i + j + k == 7) {
          vector<uint32_t> perm = {0, 1, 2};
          uint32_t like = compute_like(i, j, k, likes);
          do {
            uint32_t diff = compute_diff(i, j, k, vars[perm[0]], vars[perm[1]],
                                         vars[perm[2]]);
            if (diff < mindiff) {
              mindiff = diff;
              maxlike = like;
            } else if (diff == mindiff && like > maxlike)
              maxlike = like;
          } while (next_permutation(perm.begin(), perm.end()));
        }
      }
    }
  }
  cout << mindiff << ' ' << maxlike << '\n';
  return 0;
}
