#include <stdio.h>
#include <string.h>

struct team
{
	char name[30];
	int score;
	int goals;
};
char n1[30], n2[30];
int x, y;
team teams[4];
int size;

int main()
{
	for (int i = 1; i <= 6; i++)
	{
		bool ok = false;
		scanf("%s %s %d %d\n", n1, n2, x, y);
		for (int i = 0; i < size; i++)
		{
			if (teams[i].name == n1)
			{
				if (x > y)
				{
					teams[i].score += 3;
				}
				if (x == y)
				{
					teams[i].score++;
				}
				teams[i].goals += x;
				ok = true;
				break;
			}
		}

		if (!ok)
		{
			size++;
			strcpy(teams[size].name, n1);
			if (x > y)
			{
				teams[i].score = 3;
			}
			if (x == y)
			{
				teams[i].score = 1;
			}
			teams[size].goals = x;
		}

		ok = false;
		for (int i = 0; i < 4; i++)
		{
			if (teams[i].name == n2)
			{
				if (x < y)
				{
					teams[i].score += 3;
				}
				if (x == y)
				{
					teams[i].score++;
				}
				teams[i].goals += y;
				ok = true;
				break;
			}
		}

		if (!ok)
		{
			size++;
			strcpy(teams[size].name, n2);
			if (x < y)
			{
				teams[i].score = 3;
			}
			if (x == y)
			{
				teams[i].score = 1;
			}
			teams[size].goals = y;
		}
	}

	team aux;
	for (int i = 0; i < 4; i++)
	{
		for (int j = i + 1; j < 4; j++)
		{
			if (teams[i].score < teams[j].score)
			{
				aux = teams[i];
				teams[i] = teams[j];
				teams[j] = aux;
			}
			if (teams[i].score == teams[j].score)
			{
				if (teams[i].goals < teams[j].goals)
				{
					aux = teams[i];
					teams[i] = teams[j];
					teams[j] = aux;
				}
				if (teams[i].goals == teams[j].goals)
				{
					if (strcmp(teams[i].name, teams[j].name) < 0)
					{
						aux = teams[i];
						teams[i] = teams[j];
						teams[j] = aux;
					}
				}
			}
		}
	}

	for (int i = 0; i < 4; i++)
	{
		printf("%s\n", teams[i].name);
	}

	return 0;
}