#include <bits/stdc++.h>
using namespace std;
const int MAXN = 50;
struct TEAM {
  string nam;
  int pnts, sc, mis;
};
int n;
TEAM t[MAXN];
void Add(const string &s, int a, int b) {
  for (int i = 0; i < n; i++)
    if (t[i].nam == s) {
      if (a > b)
        t[i].pnts += 3;
      else if (a == b)
        t[i].pnts += 1;
      t[i].sc += a;
      t[i].mis += b;
      break;
    }
}
bool less1(const TEAM &a, const TEAM &b) {
  if (a.pnts != b.pnts)
    return a.pnts > b.pnts;
  else if (a.sc - a.mis != b.sc - b.mis)
    return a.sc - a.mis > b.sc - b.mis;
  else
    return a.sc > b.sc;
}
bool less2(const TEAM &a, const TEAM &b) { return a.nam < b.nam; }
int main() {
  string a, b;
  int c, d;
  cin >> n;
  for (int i = 0; i < n; i++) cin >> t[i].nam;
  cin.ignore();
  for (int i = 0; i < n * (n - 1) / 2; i++) {
    getline(cin, a, '-');
    getline(cin, b, ' ');
    scanf("%d:%d", &c, &d);
    cin.ignore();
    Add(a, c, d);
    Add(b, d, c);
  }
  sort(t, t + n, less1);
  sort(t, t + n / 2, less2);
  for (int i = 0; i < n / 2; i++) cout << t[i].nam << endl;
  return 0;
}
