#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>

using namespace std;

struct memb{
	int ID;
	double time;
};

memb yosen1[3][8];

memb yosen2[18];

int main(){
	
	for(int i = 0; i < 3; i++){
		for(int j = 0; j < 8; j++){
			cin >> yosen1[i][j].ID >> yosen1[i][j].time;
		}
	}
	
	for(int i = 0; i < 3; i++){
		for(int j = 0; j < 8; j++){
			for(int k = 6; k >= j; k--){
				if(yosen1[i][k].time > yosen1[i][k + 1].time){
					swap(yosen1[i][k], yosen1[i][k + 1]);
				}
			}
		}
	}
	
	for(int i = 0; i < 3; i++){
		for(int j = 0; j < 2; j++){
			cout << yosen1[i][j].ID << " " << yosen1[i][j].time << endl;
		}
	}
	
	for(int i = 0; i < 3; i++){
		for(int j = 2; j < 8; j++){
			yosen2[i * 6 + j - 2] = yosen1[i][j];
		}
	}
	
	for(int j = 0; j < 18; j++){
		for(int k = 16; k >= j; k--){
			if(yosen2[k].time > yosen2[k + 1].time){
				swap(yosen2[k], yosen2[k + 1]);
			}
		}
	}
	
	for(int j = 0; j < 2; j++){
		cout << yosen2[j].ID << " " << yosen2[j].time << endl;
	}
	return 0;
}