#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
struct stu{
string name;
double speed1;
double speed2;
bool operator <(const stu &res) const{
return speed2 < res.speed2;
}//重载运算符
}leg[505];
vector<stu> v;
double ans[505]={0};
int main()
{
int t;
cin >> t;
for(int i=0;i<t;i++)
{
cin >> leg[i].name >> leg[i].speed1 >> leg[i].speed2;
}
double min=1000000000000;
string s1,s2,s3,s4;
for(int i=0;i<t;i++)
{
v.clear();
double sum=leg[i].speed1;
for(int j=0;j<t;j++)
{
if(j!=i)
{
v.push_back(leg[j]);
}
}
sort(v.begin(),v.end());//vector类型的排序
for(int j=0;j<=2;j++)
{
sum+=v[j].speed2;
}
if(sum-min<0)
{
min=sum;
s1=leg[i].name;
s2=v[0].name;
s3=v[1].name;
s4=v[2].name;
}
}
printf("%.2f\n",min);
cout << s1<<endl<< s2<<endl << s3<<endl << s4;
}