#include<stdio.h>
#include<algorithm>
using namespace std;
int dat[10];
int use[10];
char str[10][21];
int w[10];
int s[10];
int sum;
int n;
int best[10];
int val;
void solve(int a,int b){
	if(a==n){
		int p=0;
		for(int i=0;i<n;i++)p+=w[dat[i]]*(i+1);
		if(p<val){
			val=p;
			for(int i=0;i<n;i++)best[i]=dat[i];
		}
	}else{
		for(int i=0;i<n;i++){
			if(!use[i]&&s[i]>=b-w[i]){
				use[i]=1;
				dat[a]=i;
				solve(a+1,b-w[i]);
				use[i]=0;
			}
		}
	}
}
int main(){
	while(scanf("%d",&n),n){
		val=999999999;
		for(int i=0;i<n;i++)scanf("%s%d%d",str[i],w+i,s+i);
		sum=0;
		for(int i=0;i<n;i++)sum+=w[i];
		solve(0,sum);
		for(int i=0;i<n;i++)printf("%s\n",str[best[i]]);
	}
}