#include <bits/stdc++.h>
using namespace std;
struct t {
  string name;
  int o, g1, g2, r;
} a[55];
map<string, int> mp;
int i, j, m, x1, x2, k, i1, i2;
string s1, s2, st, nam[55];
bool cmp(t x, t y) {
  if (x.o == y.o && x.r == y.r) return x.g1 > y.g1;
  if (x.o == y.o) return x.r > y.r;
  return x.o > y.o;
}
int main() {
  int m;
  cin >> m;
  for (i = 0; i < m; i++) {
    cin >> st;
    mp[st] = i;
    a[i].name = st;
  }
  for (i = 0; i < m * (m - 1) / 2; i++) {
    cin >> st;
    k = st.find('-');
    s1 = st.substr(0, k);
    s2 = st.substr(k + 1, (int)st.size() - k);
    scanf("%d:%d", &x1, &x2);
    i1 = mp[s1];
    i2 = mp[s2];
    if (x1 > x2)
      a[i1].o += 3;
    else if (x1 < x2)
      a[i2].o += 3;
    else {
      a[i1].o++;
      a[i2].o++;
    }
    a[i1].g1 += x1;
    a[i1].g2 += x2;
    a[i2].g1 += x2;
    a[i2].g2 += x1;
  }
  for (i = 0; i < m; i++) a[i].r = a[i].g1 - a[i].g2;
  sort(a, a + m, cmp);
  for (i = 0; i < m / 2; i++) nam[i] = a[i].name;
  sort(nam, nam + m / 2);
  for (i = 0; i < m / 2; i++) cout << nam[i] << endl;
}
