#include <iostream>
#include <cstring>
using namespace std;

struct gol
{
    int points,goals;
};
int i,a1,a2,nr,poz1,poz2,Max,Max2,j;
bool ok;
gol v2[9];
char c[20],v[9][20],space,*p;
int main()
{
    for(i=1; i<=6; ++i)
    {
        cin>>c;
        cin.get(space);
        ok=false;
        for(j=1; j<=nr; ++j)
        {
            p=strstr(v[j],c);
            if(p!=NULL)
            {
                ok=true;
                poz1=j;
            }
        }
        if(!ok)
        {
            strcpy(v[++nr],c);
            poz1=nr;
        }
        cin>>c;
        ok=false;
        for(j=1; j<=nr; ++j)
        {
            p=strstr(v[j],c);
            if(p!=NULL)
            {
                ok=true;
                poz2=j;
            }
        }
        if(!ok)
        {
            strcpy(v[++nr],c);
            poz2=nr;
        }
        cin>>a1>>a2;
        cin.get();
        v2[poz1].goals+=a1;
        v2[poz2].goals+=a2;

        if(a1>a2)
            v2[poz1].points+=3;
        if(a2>a1)
            v2[poz2].points+=3;
        if(a2==a1)
        {
            v2[poz1].points+=1;
            v2[poz2].points+=1;
        }



    }

    nr=4;
    while(nr>0)
    {
        Max=0;
        Max2=0;
        for(i=1; i<=4; ++i)
            if(v2[i].points>Max)
                Max=v2[i].points;
        for(i=1; i<=4; ++i)
        {
            if(v2[i].points==Max && v2[i].goals>Max2)
                Max2=v2[i].goals;
        }
        for(i=1; i<=4; ++i)
            if(v2[i].points==Max && v2[i].goals==Max2)
            {
                cout<<v[i]<<"\n";
                v2[i].points=-1;
                v2[i].goals=-1;
                --nr;
            }
    }
    return 0;
}