#include<stdio.h>
#include<iostream>
#include<string>
#include<algorithm>
#include <vector>

using namespace std;

struct PP{
	int f;int w;
	string str;
};

int main(){
	
	int a,b;
	string L;
	int n;
	while(1){
	cin>>n;if(n==0)break;

	struct PP  P[12];
	for(int i=0;i<n;i++){
		cin>>P[i].str>>P[i].w>>P[i].f;
	}
	for(int i=0;i<n;i++)
		for(int j=n-1;j>i;j--)
			if(P[j].f>P[j-1].f){
				struct PP T;
				T=P[j-1];P[j-1]=P[j];P[j]=T;
			}
bool f=true;
	while(1){int s=0;
	f=true;

		for(int i=n-1;i>=0;i--){
			
			if(i>0&&P[i].w>P[i-1].w){
				if(P[i].f>=P[i-1].w+s){
				struct PP TT;
				TT=P[i-1];P[i-1]=P[i];P[i]=TT;
				f=false;
			}
			}
				s+=P[i].w;
		}
		if(f==true)break;
	}
	for(int i=0;i<n;i++)
		cout<<P[i].str<<endl;
}
	return 0;
}

					
					
			

	