#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
//ifstream fin("p2.in");
//ofstream fout("p2.out");
char a[100],b[100];
int nre,Ga,Gb,pA,pB;
struct T{char name[100]; int pct,nrg;} team[10];
void adaug(char name[],int nrg,int pct)
{
    for(int i=1;i<=nre;i++)
        if(strcmp(team[i].name,name)==0)
            {team[i].pct+=pct; team[i].nrg+=nrg; return;}
    strcpy(team[++nre].name,name);
    team[nre].pct=pct;
    team[nre].nrg=nrg;
}
bool test(T x,T y)
{
    if(x.pct>y.pct) return true;
    else
        if(x.pct<y.pct) return false;
        else
            if(x.nrg>y.nrg) return true;
            else
                if(x.nrg<y.nrg) return false;
                else
                    if(strcmp(x.name,y.name)<=0)    return 1;
    return 0;
}
int main()
{
    for(int i=1;i<=6;i++)
    {
        cin>>a;
        cin>>b;
        cin>>Ga>>Gb;
        cin.get();
        if(Ga>Gb) pA=3,pB=0;
        else
            if(Ga==Gb) pA=1,pB=1;
            else pA=0,pB=3;
        adaug(a,Ga,pA);
        adaug(b,Gb,pB);
    }
    sort(team+1,team+nre+1,test);
    for(int i=1;i<=4;i++)
        cout<<team[i].name<<'\n';
    return 0;
}