#include <cstdio>
#include <cstring>
using namespace std;
struct team
{
    char name[50];
    int gol;
    int puncte;
}t[6];
int cauta_echipa(char nam[10])
{
    int i;
    for(i=0;i<6;i++)
        if(strcmp(nam,t[i].name)==0)return i;
    return -1;
}
int cauta_null(char name[10])
{
    int i;
    for(i=0;i<6;i++)
    if(t[i].name[0]<'a'||t[i].name[0]>'z')
    {
        strcpy(t[i].name,name);
        return i;
    }
}
int main()
{
    int i;
    for(i=0;i<6;i++)
    {
      int s1,s2,i1,i2;
      char name1[50],name2[50];
      scanf("%s%s%d%d",name1,name2,&s1,&s2);
      i1=cauta_echipa(name1);
      i2=cauta_echipa(name2);
      if(i1==-1)i1=cauta_null(name1);
      if(i2==-1)i2=cauta_null(name2);
      t[i1].gol+=s1;
      t[i2].gol+=s2;
      if(s1>s2)t[i1].puncte+=3;
      else if(s1==s2){t[i1].puncte+=1;t[i2].puncte+=1;}
      else t[i2].puncte+=3;
    }
    int j;
    for(i=0;i<5;i++)
        for(j=i+1;j<6;j++)
    {
       team aux;
       if(t[i].puncte>t[j].puncte){aux=t[j];t[j]=t[i];t[i]=aux;}
       else if(t[i].puncte==t[j].puncte&&t[i].gol>t[j].gol){aux=t[j];t[j]=t[i];t[i]=aux;}
       else if(t[i].puncte==t[j].puncte&&t[i].gol==t[j].gol)
       if(strcmp(t[i].name,t[j].name)>0){aux=t[j];t[j]=t[i];t[i]=aux;}

    }
    for(int i=5;i>=0;i--)
        printf("%s\n",t[i].name);
    return 0;
}

//Our greatest weakness lies in giving up. The most certain way to succeed is always to try just one more time.