#include<stdio.h>
#include<iostream>
#include<vector>
#include<map>
#include<algorithm>
using namespace std ;

typedef struct pair<double,int> Pid ;
#define F first
#define S second

vector<Pid> V1 ;
vector<Pid> V2 ;
vector<Pid> V3 ;
vector<Pid> V4 ;

int main(){
	
	int x ;
	double t ;
	for( int i=0 ; i<8 ; i++ ){
		cin >> x >> t ;
		V1.push_back( Pid(t,x) ) ;
	};
	for( int i=0 ; i<8 ; i++ ){
		cin >> x >> t ;
		V2.push_back( Pid(t,x) ) ;
	}
	for( int i=0 ; i<8 ; i++ ){
		cin >> x >> t ;
		V3.push_back( Pid(t,x) ) ;
	}
	
	sort( V1.begin() , V1.end() ) ;
	sort( V2.begin() , V2.end() ) ;
	sort( V3.begin() , V3.end() ) ;
	
	for( int i=2 ; i<8 ; i++ ){
		t = V1[i].F ; x = V1[i].S ;
		V4.push_back( Pid(t,x) ) ;
	}
	for( int i=2 ; i<8 ; i++ ){
		t = V2[i].F ; x = V2[i].S ;
		V4.push_back( Pid(t,x) ) ;
	}
	for( int i=2 ; i<8 ; i++ ){
		t = V3[i].F ; x = V3[i].S ;
		V4.push_back( Pid(t,x) ) ;
	}
	sort( V4.begin() , V4.end() ) ;
	
	for( int i=0 ; i<2 ; i++ ) printf("%d %.2lf\n",V1[i].S ,V1[i].F) ; 
	for( int i=0 ; i<2 ; i++ ) printf("%d %.2lf\n",V2[i].S ,V2[i].F) ;
	for( int i=0 ; i<2 ; i++ ) printf("%d %.2lf\n",V3[i].S ,V3[i].F) ;
	for( int i=0 ; i<2 ; i++ ) printf("%d %.2lf\n",V4[i].S ,V4[i].F) ;
	
return 0 ;
}