#include <iostream>
#include <map>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;

struct TeamInfo
{
	int points, goals;
	string name;

	TeamInfo() : points(0), goals(0)
	{

	}

	TeamInfo(string &name) : points(0), goals(0), name(name)
	{

	}
};

void AddInfo(string &t1, string &t2, int g1, int g2, map<string, TeamInfo> &teamMap)
{
	map<string, TeamInfo>::iterator it;
	it = teamMap.find(t1);
	if (it == teamMap.end())
		teamMap[t1] = TeamInfo(t1);

	it = teamMap.find(t2);
	if (it == teamMap.end())
		teamMap[t2] = TeamInfo(t2);

	TeamInfo &ti1 = teamMap[t1];
	TeamInfo &ti2 = teamMap[t2];

	ti1.goals += g1;
	ti2.goals += g2;
	if (g1 > g2)
		ti1.points += 3;
	else if (g1 == g2)
	{
		ti1.points++;
		ti2.points++;
	}
	else
		ti2.points += 3;
}

bool TeamCompare(const TeamInfo &t1, const TeamInfo &t2)
{
	if (t1.points > t2.points)
		return true;
	if (t1.points < t2.points)
		return false;

	if (t1.goals > t2.goals)
		return true;
	if (t1.goals < t2.goals)
		return false;

	return (t1.name.compare(t2.name));
}

void ProcessInfo(map<string, TeamInfo> &teamMap)
{
	vector<TeamInfo> teams;
	map<string, TeamInfo>::iterator it;
	for (it = teamMap.begin(); it != teamMap.end(); it++)
	{
		teams.push_back(it->second);
	}
	
	sort(teams.begin(), teams.end(), TeamCompare);
	for (int i = 0; i < teams.size(); i++)
	{
		cout << teams[i].name << endl;
	}
}

int main()
{
	map<string, TeamInfo> teamMap;
	for (int i = 0; i < 6; i++)
	{
		string t1, t2;
		int g1, g2;
		cin >> t1 >> t2 >> g1 >> g2;
		AddInfo(t1, t2, g1, g2, teamMap);
	}
	ProcessInfo(teamMap);
	return 0;
}