#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct ech{
    char nume[1000];
    int p;
    int gd;
    int gp;
}v[10];
int n,ok,i,j,a,b,nr,pa,pb;
char s1[1000],s2[1000];
//FILE *f,*g;
int cmp(ech a,ech b){
    if(a.p!=b.p)
        return a.p>b.p;
    if(a.gd!=b.gd)
        return a.gd>b.gd;
    if( strcmp(a.nume,b.nume)==-1 )
        return 1;
    return 0;
}
int main(){
    n=6;
   // f=fopen("1.in","r");
   // g=fopen("1.out","w");
    while(n--){
        scanf("%s%s%d%d",s1,s2,&a,&b);
        ok=1;
        for(i=1;i<=nr;i++){
            if( strcmp(s1,v[i].nume)==0 ){
                ok=0;
                pa=i;
                break;
            }
        }
        if(ok==1){
            nr++;
            for(i=0;i<strlen(s1);i++){
                v[nr].nume[i]=s1[i];
            }
        }
        ok=1;
        for(i=1;i<=nr;i++){
            if( strcmp(s2,v[i].nume)==0 ){
                ok=0;
                pb=i;
                break;
            }
        }
        if(ok==1){
            nr++;
            for(i=0;i<strlen(s2);i++){
                v[nr].nume[i]=s2[i];
            }
        }
        v[pa].gd+=a;
        v[pa].gp+=b;
        v[pb].gd+=b;
        v[pb].gp+=a;
        if(a>b){
            v[pa].p+=3;
        }
        if(a<b){
            v[pb].p+=3;
        }
        if(a==b){
            v[pa].p++;
            v[pb].p++;
        }
    }
    sort(v+1,v+nr+1,cmp);
    for(i=1;i<=nr;i++){
        printf("%s\n",v[i].nume);
    }



    fclose(f);
    fclose(g);
    return 0;
}