#include<iostream>
using namespace std;
typedef struct{
	char nume[101];
	int point, goals; }TEAM;
	TEAM v[10], aux;
int main()
{
	char TeamA[101], TeamB[101];
	int golA, golB, okA, okB;
	int i, j, k = 0;
	for (i = 1; i <= 6; i++)
	{
		cin >> TeamA >> TeamB >> golA >> golB;
		okA = okB = 0;
		for (i = 1; i <= k; i++)
		{
			if (strcmp(v[i].nume, TeamA) == 0)okA = i;
			if (strcmp(v[i].nume, TeamB) == 0)okB = i;
		}
		if (okA == 0)
		{
			strcpy(v[++k].nume, TeamA); okA = k;
		}
		if (okB == 0)
		{
			strcpy(v[++k].nume, TeamB);
			okB = k;
		}
		if (golA > golB)
		{
			v[okA].point += 3;
			v[okA].goals += golA;
			v[okB].goals += golB;
		}
		else if (golA == golB)
		{
			v[okA].point += 1;
			v[okB].point += 1;
			v[okA].goals += golA;
			v[okB].goals += golB;
		}
		else
		{
			v[okB].point += 3;
			v[okB].goals += golB;
			v[okA].goals += golA;
		}
	}
	for (i = 1; i <= k-1; i++)
	{
		for (j = i + 1; j <= k; j++)
		{
			if (v[i].point < v[j].point)
			{
				aux = v[i];
				v[i] = v[j];
				v[j] = aux;
			}
			else
				if (v[i].point == v[j].point)
					if (v[i].goals < v[j].goals)
					{
				aux = v[i];
				v[i] = v[j];
				v[j] = aux;
					}
					else
						if (v[i].goals == v[j].goals)
							if (strcmp(v[i].nume, v[j].nume) > 0)
							{
				aux = v[i];
				v[i] = v[j];
				v[j] = aux;
							}
		}
	}
	for (i = 1; i <= k; i++)
		cout << v[i].nume << "\n";
}