#include<bits/stdc++.h>
using namespace std;
const int N=1e3+5,INF=0x3f3f3f3f;
typedef long long LL;
int n,l[N],r[N],cnt;
struct xue{
string name;
int yu,shu,ying,zong;
}a[N];
struct ans{
int l,r;
}b[N];
bool f(xue a,xue b){
return (abs(a.zong-b.zong)<=10&&abs(a.shu-b.shu)<=5&&abs(a.yu-b.yu)<=5&&abs(a.ying-b.ying)<=5);
}
bool cmp(ans a,ans b){
if(a[a.l].name!=a[b.l].name)return a[a.l].name<a[b.l].name;
else return a[a.r].name<a[b.r].name;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].name>>a[i].yu>>a[i].shu>>a[i].ying;
a[i].zong = a[i].yu+a[i].shu+a[i].ying;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(i<j&&f(a[i],a[j])){
b[++cnt].l= i;
b[cnt].r = j;
}
}
}
sort(b+1,b+cnt+1,cmp);
for(int i=1;i<=cnt;i++)cout<<a[b[i].l].name<<" "<<a[b[i].r].name<<endl;
return 0;
}