#include <bits/stdc++.h>
int cmp(const void *p1, const void *p2) {
  if (*(int *)p1 != *(int *)p2) return *(int *)p2 - *(int *)p1;
  if (*((int *)p1 + 2) != *((int *)p2 + 2))
    return *((int *)p2 + 2) - *((int *)p1 + 2);
  return *((int *)p2 + 1) - *((int *)p1 + 1);
}
int n, m;
int g[55][4];
char a[55][35];
char b[100];
char c[55][35];
int main() {
  int i, j, lb, x, y, k;
  while (scanf("%d", &n) != EOF) {
    for (i = 0; i < n; i++) {
      scanf("%s", a[i]);
    }
    memset(g, 0, sizeof(g));
    for (i = 0; i < n / 2 * (n - 1); i++) {
      scanf("%s", b);
      scanf("%d:%d", &x, &y);
      lb = strlen(b);
      for (j = 0; j < lb; j++) {
        if (b[j] == '-') {
          b[j] = '\0';
          k = j;
          break;
        }
      }
      for (j = 0; j < n; j++) {
        if (!strcmp(b, a[j])) {
          if (x == y) g[j][0] += 1;
          if (x > y) g[j][0] += 3;
          g[j][1] += x;
          g[j][2] += (x - y);
          g[j][3] = j;
          break;
        }
      }
      for (j = 0; j < n; j++) {
        if (!strcmp(b + k + 1, a[j])) {
          if (x == y) g[j][0] += 1;
          if (x < y) g[j][0] += 3;
          g[j][1] += y;
          g[j][2] += (y - x);
          g[j][3] = j;
          break;
        }
      }
    }
    qsort(g, n, sizeof(int) * 4, cmp);
    for (i = 0; i < n / 2; i++) {
      strcpy(c[i], a[g[i][3]]);
    }
    for (i = 0; i < n / 2; i++) {
      for (j = i + 1; j < n / 2; j++) {
        if (strcmp(c[i], c[j]) > 0) {
          strcpy(b, c[i]);
          strcpy(c[i], c[j]);
          strcpy(c[j], b);
        }
      }
    }
    for (i = 0; i < n / 2; i++) printf("%s\n", c[i]);
  }
  return 0;
}
