#include <iostream>
#include <algorithm>
#include <string.h>

using namespace std;

struct el
{
    int pct,nr;
}t[10];

int nr_team,ap1,ap2,val1,val2;
char s1[101],s2[101],team[10][101];

inline bool comp(el e1,el e2)
{
    return e1.pct<e2.pct;
}
inline void solve(char s1[],int val1,int val2)
{
     int j,ap1=1;

     for (j=1;j<=nr_team;j++)
        {
            for (int k=0;k<strlen(s1);k++)
              if (team[j][k]!=s1[k])
                ap1=0;

            if (ap1)
              {if (val1>val2)
               t[j].pct+=3;
              else
               if (val1==val2)
                t[j].pct++;
              break;
              }
        }
       if (j==nr_team+1)
       {
           nr_team++;
           for (int j=0;j<strlen(s1);j++)
             team[nr_team][j]=s1[j];
       }
}
int main()
{
   for (int i=1;i<=6;i++)
   {
       cin>>s1>>s2>>val1>>val2;

        solve(s1,val1,val2);
        solve(s2,val2,val1);
   }
   for (int i=1;i<=4;i++)
     t[i].nr=i;
   sort(t+1,t+5,comp);
   for (int i=1;i<=4;i++)
   {
       int j=0;

       while (team[t[i].nr][j])
        cout<<team[t[i].nr][j++];
       cout<<'\n';
   }

}