#include <bits/stdc++.h>
using namespace std;
struct football{
string name;
int fs;
int sq;
int jq;
}a[1000001];
string sum[1000001];
bool cmp(football a,football b){
if(a.fs!=b.fs){
return a.fs>b.fs;
}
else if(a.fs==b.fs&&a.sq!=b.sq){
return a.sq>b.sq;
}
else {
return a.jq>b.jq;
}
}
bool cmp2(football a,football b){
return a.name < b.name ;
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].name;
a[i].fs=a[i].jq=a[i].sq=0;
}
for(int i=1;i<=n*(n-1)/2;i++){
string s,player1,player2;
cin>>s;
player1=s.substr(0,s.find('-'));
player2=s.substr(s.find('-')+1,s.length()-1);
int p1,p2;
scanf("%d:%d",&p1,&p2);
if(p1>p2){
for(int j=1;j<=n;j++){
if(player1==a[j].name){
a[j].jq+=p1;
a[j].sq++;
a[j].fs+=3;
}
else if(player2==a[j].name){
a[j].jq+=p2;
}
}
}
else if(p1==p2){
for(int j=1;j<=n;j++){
if(player1==a[j].name){
a[j].jq+=p1;
a[j].fs++;
}
else if(player2==a[j].name){
a[j].jq+=p2;
a[j].fs++;
}
}
}
else {
for(int j=1;j<=n;j++){
if(player1==a[j].name){
a[j].jq+=p1;
}
else if(player2==a[j].name){
a[j].jq+=p2;
a[j].sq++;
a[j].fs+=3;
}
}
}
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n/2;i++){
sum[i]=a[i].name;
}
sort(sum+1,sum+n/2+1);
for(int i=1;i<=n/2;i++){
cout<<sum[i]<<endl;
}
return 0;
}