#include <iostream>
#include <algorithm>
#include <string>

using namespace std;

struct itm{
	string str;
	int w;
	int s;
	bool f;
};

int main()
{
	int n, w, p;
	itm it[11];
	string st[11];
	bool f;
	
	while(cin >> n && n){
		w = p = 0;
		for(int i = 0; i < n; i++){
			cin >> it[i].str >> it[i].w >> it[i].s;
			w += it[i].w;
			it[i].f = true;
		}
		
		for(int i = 0; i < n; i++){
			f = false;
			for(int j = 0; j < n; j++){
				if(it[j].f && it[j].s >= (w-it[j].w)){
					f = true;
					p = j;
					for(int k = j+1; k < n; k++){
						if(it[k].w > it[p].w && it[k].f && it[k].s >= (w-it[k].w)){
							p = k;
						}
					}
				}
				if(f){
					break;
				}
			}
			if(f){
				st[i] = it[p].str;
				w -= it[p].w;
				it[p].f = false;
				cout << it[p].str << endl;
			}
		}
	}
	
	return 0;
}