#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
	int N;
	while(cin>>N,N)
	{
		vector<pair<string,pair<int,int> > >A;
		for(int i=0;i<N;i++)
		{
			string f;int w,s;cin>>f>>w>>s;
			A.push_back(make_pair(f,make_pair(w,s)));
		}
		sort(A.begin(),A.end());
		vector<string>ans;
		double mG=1e150;
		do{
			bool flag=true;
			int T=0;
			for(int i=0;i<N;i++)
			{
				if(T>A[i].second.second)
				{
					flag=false;
					break;
				}
				T+=A[i].second.first;
			}
			if(flag)
			{
				double G=0;
				for(int i=0;i<N;i++)G+=A[i].second.first*(N-i);
				G/=T;
				if(mG>G)
				{
					mG=G;
					ans.clear();
					for(int i=N;i--;)ans.push_back(A[i].first);
				}
			}
		}while(next_permutation(A.begin(),A.end()));
		for(int i=0;i<N;i++)cout<<ans[i]<<endl;
	}
}

