#include<bits/stdc++.h>
using namespace std;
// 复合类型数据
struct Stu
{
string name;
int yw, sx, yy;
};
Stu xs[10010];
struct Name
{
string name1, name2;
};
Name peidui[1000000];
int cnt;
bool check(int i, int j)
{
int s1 = xs[i].yw + xs[i].sx + xs[i].yy;
int s2 = xs[j].yw + xs[j].sx + xs[j].yy;
if (abs(s1 - s2) > 10) return false;
if (abs(xs[i].yw - xs[j].yw) > 5) return false;
if (abs(xs[i].sx - xs[j].sx) > 5) return false;
if (abs(xs[i].yy - xs[j].yy) > 5) return false;
return true;
}
bool cmp(Name x, Name y) // x.name1 x.name2 y.name1 y.name2
{
if (x.name1 == y.name1) return x.name2 < y.name2;
return x.name1 < y.name1;
}
int main()
{
int n;
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> xs[i].name >> xs[i].yw >> xs[i].sx >> xs[i].yy;
}
for (int i = 1; i <= n - 1; i++)
{
for (int j = i + 1; j <= n; j++)
{
if (check(i, j) == true) // 表示i号学生和j号学生是旗鼓相当对手
{
peidui[cnt].name1 = xs[i].name;
peidui[cnt].name2 = xs[j].name;
if (peidui[cnt].name2 < peidui[cnt].name1)
swap(peidui[cnt].name1, peidui[cnt].name2);
cnt++;
}
}
}
sort(peidui, peidui + cnt, cmp);
for (int i = 0; i < cnt; i++)
cout << peidui[i]. name1 << " " << peidui[i].name2 << endl;
return 0;
}