#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>
#include <functional>

using namespace std;
typedef pair<double, int> P;

void solve()
{
	priority_queue<P, vector<P>, greater<P> > PQue;
	for(int i = 0; i < 3; ++i)
	{
		vector<P> Vec(8);
		for(int j = 0; j < 8; ++j)
		{
			cin >> Vec[j].second >> Vec[j].first;
		}
		sort(Vec.begin(), Vec.end());
		printf("%d %.2f\n", Vec[0].second, Vec[0].first);
		printf("%d %.2f\n", Vec[1].second, Vec[1].first);
		for(int j = 2; j < 8; ++j)
		{
			PQue.push(Vec[j]);
		}
	}
	printf("%d %.2f\n", PQue.top().second, PQue.top().first);
	PQue.pop();
	printf("%d %.2f\n", PQue.top().second, PQue.top().first);
}

int main()
{
	solve();
	return(0);
}