  #include <iostream>
#include <fstream>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <vector>
#include <string>
#include <iterator>
#include <algorithm>
#include <numeric>
#include <utility>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <sstream>
#include <cctype>
#include <assert.h>
#include <list>
#include <ext/hash_set>
#include <ext/hash_map>

using namespace __gnu_cxx;
using namespace std;

#define MP(a,b) make_pair(a,b)
#define i64 long long
#define pb push_back
#define For(i,a,b) for(typeof(a) i=(a);i<(b);i++)
#define Rev(i,a,b) for(typeof(a) i=(a);i>=(b);i--)
#define FOREACH(V,it) for(typeof(V.begin()) it=V.begin();it!=V.end();it++)
#define CLR(a,x) memset(a,x,sizeof(a))
#define ALL(x) x.begin(),x.end()

/**********************************************************************************/
vector< pair<int,string> > V;
char buf[1000];
string s[55];
int main(){
	ifstream fin("DATA2.txt"); ofstream fout("OUT2.txt");
	int t=5;
	while (t--){
		For(i,0,5){
			fin.getline(buf,1000);
			s[i]= buf;
		}
		V.clear();
		For(i,0,5){
			int k;
			sscanf(s[i].c_str(),"%d",&k);
			int g= s[i].find(" ");
			if (g>=0 && g< s[i].size() ) 			s[i]=s[i].substr(g);
			V.pb( MP(k*1000+i,s[i]));
		}
		sort(ALL(V)); reverse(ALL(V));
		For(i,0,V.size())
			fout << V[i].second << endl;
		
	}
	

}
