#include<iostream>
#include<string>
using namespace std;

string f[11];
int ans[11];
int n;
int w[11],s[11];

void solve(){
	for(int i=1; i<=n; i++)
		ans[i] = i;
	for(int k=1; k<=n; k++){
		for(int i=n; i>k; i--){
			if(s[ans[i]] > s[ans[i-1]]){
				int tmp = ans[i];
				ans[i] = ans[i-1];
				ans[i-1] = tmp;
			}
		}
	}
	bool flag = true;
	for(int i=1; i<=n; i++){
		if(i==n&&flag)
			i=1;
		else if(i==n)
			break;
		if(w[ans[i]] < w[ans[i+1]]){
			int tmp = w[ans[i]];
			for(int k=i+2; k<=n; k++)
				tmp += w[ans[k]];
			if(s[ans[i+1]] >= tmp){
				tmp = ans[i];
				ans[i] = ans[i+1];
				ans[i+1] = tmp;
				flag = false;
			}
		}
	}
}

int main(){
	while(true){
		cin >> n;
		if(!n)
			return 0;
		for(int i=1; i<=n; i++)
			cin >> f[i] >> w[i] >> s[i];
		solve();
		for(int i=1; i<=n; i++)
			cout << f[ans[i]] << endl;
	}
}