#include <bits/stdc++.h>   using namespace std;   inline long long tmx(long long a, long long b, long long c) {     return (a > b && a > c) ? a : ((b > c) ? b : c);   }   inline long long tmn(long long a, long long b, long long c) {     return (a < b && a < c) ? a : ((b < c) ? b : c);   }   const int MXL = 0x3f3f3f3f;   string s[] = { Anka ,    Chapay ,  Cleo ,        Troll ,                  Dracul ,  Snowy ,   Hexadecimal };   inline int find(string x) {     for (int i = 0; i < 7; ++i)       if (s[i] == x) return i;   }   int n;   long long A, B, C;   int f[7][7] = {};   long long BE = (long long)MXL * MXL, AM = 0;   int c[7];   void dfs(int w) {     if (w == 7) {       int t[3] = {};       for (int i = 0; i < 7; ++i) ++t[c[i]];       if (!t[0] || !t[1] || !t[2]) return;       long long MX = tmx(A / t[0], B / t[1], C / t[2]);       long long MN = tmn(A / t[0], B / t[1], C / t[2]);       long long BE_N = MX - MN;       if (BE_N > BE) return;       long long AM_N = 0;       for (int i = 0; i < 7; ++i)         for (int j = 0; j < 7; ++j)           if (c[i] == c[j]) AM_N += f[i][j];       if (BE_N < BE || AM_N > AM) {         BE = BE_N;         AM = AM_N;       }       return;     }     for (int i = 0; i < 3; ++i) {       c[w] = i;       dfs(w + 1);     }   }   string L, R;   int LN, RN;   string like;   inline void EXEC() {     cin >> n;     for (int i = 0; i < n; ++i) {       cin >> L >> like >> R;       LN = find(L);       RN = find(R);       ++f[LN][RN];     }     cin >> A >> B >> C;     dfs(0);     cout << BE <<     << AM << endl;   }   int main() {     EXEC();     return 0;   }   