#include<iostream>
using namespace std;


//対象者構造体
typedef struct struct_data
{
	int bangou;
	int sintyou;
	int taizyuu;
}S_data;

//----- 最大値格納関数 -----//
void f_max(S_data * , S_data *);

//----- 構造体初期化関数 -----//
void f_syokika(S_data *);

int main(void)
{
	//入力数
	int n = 0;
	//人
	S_data s_data = {0};
	S_data s_max = {0};

	while (true)
	{
		cin >> n;

		if (n == 0)
		{
			return 0;
		}

		//初期化
		f_syokika(&s_max);

		for (int i = 0; i < n; i++)
		{
			cin >> s_data.bangou >> s_data.sintyou >> s_data.taizyuu;
			f_max(&s_max , &s_data);
		}

		//出力
		cout << s_max.bangou << endl;
	}

	return 0;
}



//*****----- 最大値格納関数 -----*****//

void f_max(S_data *ptr_max , S_data *ptr_data)
{
	//BMPの近いほう
	//int max_sa = 22;
	//int data_sa = 22;
	double max_sa = 22;
	double data_sa = 22;

	double double_max = 0;
	if (ptr_max->bangou != 0 && ptr_max->sintyou != 0 && ptr_max->taizyuu != 0)
	{
		double_max = (double)ptr_max->sintyou / 100;

		max_sa -= ptr_max->taizyuu / (double_max * double_max);

		if (max_sa < 0)
		{
			max_sa *= -1;
		}
	}
	double double_data = 0;
	double_data = (double)ptr_data->sintyou / 100;
	data_sa -= (double)ptr_data->taizyuu / (double_data * double_data);

	if (data_sa < 0)
	{
		data_sa *= -1;
	}

	/*if (ptr_max->bangou != 0 && ptr_max->sintyou != 0 && ptr_max->taizyuu != 0)
	{
		max_sa -= ((double)ptr_max->taizyuu / ((double)ptr_max->sintyou * (double)ptr_max->sintyou / 10000));
		if (max_sa < 0)
		{
			max_sa *= -1;
		}
	}

	data_sa -= ((double)ptr_data->taizyuu / ((double)ptr_data->sintyou * (double)ptr_data->sintyou / 10000));
	if (data_sa < 0)
	{
		data_sa *= -1;
	}*/

	//現在の方が差が大きいのなら
	if (max_sa > data_sa)
	{
		*ptr_max = *ptr_data;
	}
}



//*****----- 構造体初期化関数 -----*****//

void f_syokika(S_data *ptr_max)
{
	ptr_max->bangou = 0;
	ptr_max->sintyou = 0;
	ptr_max->taizyuu = 0;
}