#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;

struct team
{	int score;
	int goals;
	char name[105];
} a[5];

char lin[1000], *p;
int i, I, n, t1, t2, g1, g2, smax, gmax, t;

int main()
{	for (I=1; I<=6; ++I)
	{	t1=t2=0;
		cin.getline(lin, 1000);
		p=strtok(lin, " ");
		for (i=1; i<=n; ++i)
			if (!strcmp(a[i].name, p)) t1=i;
		if (!t1)
		{	strcpy(a[++n].name, p);
			t1=n;
		}
		p=strtok(NULL, " ");
		for (i=1; i<=n; ++i)
			if (!strcmp(a[i].name, p)) t2=i;
		if (!t2)
		{	strcpy(a[++n].name, p);
			t2=n;
		}
		p=strtok(NULL, " ");
		g1=atoi(p);
		p=strtok(NULL, " ");
		g2=atoi(p);
		a[t1].goals+=g1;
		a[t2].goals+=g2;
		if (g1==g2)
		{	++a[t1].score;
			++a[t2].score;
		}
		else
			if (g1>g2) a[t1].score+=3;
			else a[t2].score+=3;
	}
	for (I=1; I<=4; ++I)
	{	t=smax=gmax=0;
		for (i=1; i<=n; ++i)
			if (a[i].score>smax)
			{	smax=a[i].score;
				t=i;
				gmax=a[i].goals;
			}
			else
				if (a[i].score==smax && (a[i].goals>gmax || (a[i].goals==gmax && (t==0 || strcmp(a[t].name, a[i].name)>0))))
				{	gmax=a[i].goals;
					t=i;
				}
		cout<<a[t].name<<'\n';
		a[t].score=-1;
	}
    return 0;
}