#include<stdio.h>

struct NU{int n;double m;int s;int S;};

int main(){
int n,s;
double m;
struct NU num[25],n2[18];
for(int i=0;i<3;i++){

for(int j=0;j<8;j++){
scanf("%d %lf",&n,&m);
num[j].n=n;num[j].m=m;
//printf("%d %lf[%d]\n",num[j].n,num[j].m,j);
}

for(int j=0;j<8;j++){
//	printf("%d %lf\n",num[j].n,num[j].m);
for(int k=8-1;k>j;k--){
if(num[k-1].m>num[k].m){struct NU t=num[k-1];num[k-1]=num[k];num[k]=t;}
}
}
for(int j=0;j<8;j++){
if(j<2)printf("%d %.2lf\n",num[j].n,num[j].m);
else if(j>=2&&i==0)n2[j-2]=num[j];
else if(j>=2&&i==1)n2[j-2+6]=num[j];
else if(j>=2&&i==2)n2[j-2+12]=num[j];
}
}

for(int j=0;j<19;j++){
for(int k=17;k>j;k--){
if(n2[k-1].m>n2[k].m){struct NU tt=n2[k-1];n2[k-1]=n2[k];n2[k]=tt;}
}
}

for(int j=0;j<2;j++){
if(j<2)printf("%d %.2lf\n",n2[j].n,n2[j].m);
//else if(j>=2)n2[j]=num[j];
}

return 0;
}