#include <iostream>
#include <string>
using namespace std;

struct team
{
	string name;
	int goals;
	int points;
};

int is(team x[], int n, string TA)
{
	for (int i = 0; i < n; i++)
		if (x[i].name == TA)
			return i;
	return -1;
}

void Introd(team x[], int n, string T)
{
	x[n].name = T;
	x[n].goals = 0;
	x[n].points = 0;
}

int main()
{
	team x[50];
	int n = 0;

	string TA, TB;
	int GA, GB;
	while (cin >> TA >> TB >> GA >> GB)
	{
		int i = is(x, n, TA), j = is(x, n, TB);
		if (i == -1)
			Introd(x, n, TA), i = n, n++;
		if (j == -1)
			Introd(x, n, TB), j = n, n++;

		if (GA == GB)
			x[i].points += 1, x[j].points += 1;
		if (GA > GB)
			x[i].points += 3;
		if (GA < GB)
			x[j].points += 3;
		x[i].goals += GA;
		x[j].goals += GB;

		for (int i = 0; i < n - 1; i++)
			for (int j = i + 1; j < n; j++)
			{
				if (x[i].points < x[j].points)
				{
					team aux = x[i];
					x[i] = x[j];
					x[j] = aux;
				}
				else if (x[i].points == x[j].points)
				{
					if (x[i].goals<x[j].goals)
					{
						team aux = x[i];
						x[i] = x[j];
						x[j] = aux;
					}
					else if (x[i].name>x[j].name)
					{
						team aux = x[i];
						x[i] = x[j];
						x[j] = aux;
					}
				}
			}
	}
	for (int i = 0; i < n; i++)
		cout << x[i].name << endl;
}