#include <bits/stdc++.h>

#define rep2(x,fr,to) for(int (x)=(fr);(x)<(to);(x)++)
#define rep(x,to) for(int (x)=0;(x)<(to);(x)++)
#define repr(x,fr,to) for(int (x)=(fr);(x)>=(to);(x)--)
#define all(c) (c).begin(),(c).end()
#define sz(v) (int)(v).size()

using namespace std;
typedef long long ll; typedef vector<int> VI; typedef pair<int,int> pii;
const int mod = (int)1e9 + 7;
void dbg(){ cerr << "\n"; }  template <typename T,typename ...T2>
void dbg(const T& fst, const T2&...rst){ cerr << fst << ": "; dbg(rst...); }

int main(){

	vector<VI> dt(24, VI(4));
	rep(i, 24){
		int a; double b;
		cin >>a >>b;
		dt[i][0] = int(b*100);
		dt[i][1] = a;
	}
	
	rep(i, 3){
		sort(dt.begin()+i*8, dt.begin()+i*8+8);
		dt[i*8][2] = dt[i*8+1][2] = 1;
		printf("%d %.2f\n", dt[i*8][1], dt[i*8][0]/100.0);
		printf("%d %.2f\n", dt[i*8+1][1], dt[i*8+1][0]/100.0);
	}
	
	sort(all(dt));
	for(int i=0, ct=2; i<24 && ct>0 ;i++){
		if(dt[i][2] !=1){
			printf("%d %.2f\n", dt[i][1], dt[i][0]/100.0);
			ct--;
		}
	}
	return 0;
}

