#include <iostream>
#include <fstream>
#include <string>
#include <queue>
#include <cstring>
#include <iomanip>
#include <stack>
#include <set>
#include <algorithm>
#include <cmath>

using namespace std;

struct Echipa
{
    string nume;
    int puncte;
    int goals;

} E[5];
int nr;

void update()
{
    string A, B;
    int scoreA, scoreB;
    cin>>A>>B>>scoreA>>scoreB;
    bool found = false;
    for(int i = 1; i<= nr; i ++)
        if(E[i].nume == A)
        {
            E[i].goals += scoreA;
            if(scoreA == scoreB)
                E[i].puncte ++;
            else if(scoreA > scoreB)
                E[i].puncte += 3;
            found = true;
        }
    if(!found)
    {
        E[++nr].goals = scoreA;
        E[nr].nume = A;
        if(scoreA == scoreB)
            E[nr].puncte ++;
        else if(scoreA > scoreB)
            E[nr].puncte += 3;
        else E[nr].puncte = 0;
    }
    found = false;

    for(int i = 1; i<= nr; i ++)
        if(E[i].nume == B)
        {
            E[i].goals += scoreB;
            if(scoreA == scoreB)
                E[i].puncte ++;
            else if(scoreA < scoreB)
                E[i].puncte += 3;
            found = true;
        }
    if(!found)
    {
        E[++nr].goals = scoreB;
        E[nr].nume = B;
        if(scoreA == scoreB)
            E[nr].puncte = 1;
        else if(scoreA < scoreB)
            E[nr].puncte = 3;
        else E[nr].puncte = 0;
    }
}

bool cmp(Echipa a, Echipa b)
{
    return a.puncte > b.puncte || (a.puncte == b.puncte && a.goals > b.goals) ||
    (a.puncte == b.puncte && a.goals == b.goals && a.nume < b.nume );
}

int main()
{

    for(int i = 1; i<=6; i++)
        update();

    sort(E+1, E+5,cmp);
    for(int i = 1; i <= nr; i++)
    {
        cout<<E[i].nume<<'\n';
    }
    return 0;
}