#include #define MOD 1000000007 #define Nmax 1000005 #define INF 2000000000 #define eps 0.000000000001 using namespace std; inline int Cmp(char a[], int n, char b[], int m) { int i; for(i=1;i<=n && i<=m && a[i]==b[i];++i); if(i>n) { if(i>m) return 0; return 2; } else { if(i>m) return 1; if(a[i]>b[i]) return 1; return 2; } } struct el { char nume[105]; int pc,nr,lnume; } a[100]; int n; inline bool Cmp(el A, el B) { if(A.pc==B.pc) { if(A.nr==B.nr) return (Cmp(A.nume,A.lnume,B.nume,B.lnume)==1); return A.nr>B.nr; } return A.pc>B.pc; } inline int Find(char sir[], int len) { int i; for(i=1;i<=n;++i) if(Cmp(sir,len,a[i].nume,a[i].lnume)==0) return i; ++n; a[n].lnume=len; for(i=1;i<=len;++i) a[n].nume[i]=sir[i]; return n; } int main() { int i,j,x,y,l1,l2,p1,p2; char s1[100],s2[100]; #ifndef ONLINE_JUDGE freopen ("date.in","r",stdin); freopen ("date.out","w",stdout); #endif for(i=1;i<=6;++i) { cin>>(s1+1)>>(s2+1)>>x>>y; l1=strlen(s1+1); l2=strlen(s2+1); p1=Find(s1,l1); p2=Find(s2,l2); if(x>y) a[p1].pc+=3; else if(x==y) { a[p1].pc++; a[p2].pc++; } else a[p2].pc+=3; a[p1].nr+=x; a[p2].nr+=y; } for(i=1;i<=4;++i) for(j=i+1;j<=4;++j) if(Cmp(a[i],a[j])) swap(a[i],a[j]); for(i=4;i>=1;--i) { for(j=1;j<=a[i].lnume;++j) cout<