#include <iostream>
using namespace std;

struct echipa
{
	char nume[101];
	int gol, pct;
};

echipa ec[101];

bool cmp(echipa A, echipa B)
{
	if(A.pct==B.pct)
	{
		if(A.gol==B.gol)
			return strcmp(A.nume, B.nume)<0;
		return A.gol>B.gol;
	}
	return A.pct>B.pct;
}
int i, g1, g2, ok, ok2, j, nc;
char e1[101], e2[101];
int main()
{
	for(i=1; i<=6; i++)
	{
		cin>>e1>>e2>>g1>>g2;
		if(g1>g2)
		{
			ok=0;
			ok2=0;
			for(j=1; j<=nc; j++)
			{
				if(strcmp(ec[j].nume, e1)==0)
				{
					ec[j].gol+=g1;
					ec[j].pct+=3;
					ok=1;
				}
				if(strcmp(ec[j].nume, e2)==0)
				{
					ec[j].gol+=g2;
					ok2=1;
				}
			}
			if(!ok)
			{
				nc++;
				strcpy(ec[nc].nume, e1);
				ec[nc].gol+=g1;
				ec[nc].pct+=3;
			}
			if(!ok2)
			{
				nc++;
				strcpy(ec[nc].nume, e2);
				ec[nc].gol+=g2;
			}
		}
		else if(g1<g2)
		{
			ok=0;
			ok2=0;
			for(j=1; j<=nc; j++)
			{
				if(strcmp(ec[j].nume, e2)==0)
				{
					ec[j].gol+=g2;
					ec[j].pct+=3;
					ok=1;
				}
				if(strcmp(ec[j].nume, e1)==0)
				{
					ec[j].gol+=g1;
					ok2=1;
				}
			}
			if(!ok)
			{
				nc++;
				strcpy(ec[nc].nume, e2);
				ec[nc].gol+=g2;
				ec[nc].pct+=3;
			}
			if(!ok2)
			{
				nc++;
				strcpy(ec[nc].nume, e1);
				ec[nc].gol+=g1;
			}
		}
		else if(g1==g2)
		{
			ok=0;
			ok2=0;
			for(j=1; j<=nc; j++)
			{
				if(strcmp(ec[j].nume, e1)==0)
				{
					ec[j].gol+=g1;
					ec[j].pct+=1;
					ok=1;
				}
				if(strcmp(ec[j].nume, e2)==0)
				{
					ec[j].gol+=g2;
					ec[j].pct+=1;
					ok2=1;
				}
			}
			if(!ok)
			{
				nc++;
				strcpy(ec[nc].nume, e1);
				ec[nc].gol+=g1;
				ec[nc].pct+=1;
			}
			if(!ok2)
			{
				nc++;
				strcpy(ec[nc].nume, e2);
				ec[nc].gol+=g2;
				ec[nc].pct+=1;
			}
		}
	}
	sort(ec+1, ec+nc+1, cmp);
	for(i=1; i<=nc; i++)
	{
		cout<<ec[i].nume<<"\n";
	}
}