#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;

int n,a,tmp;
int s[10],w[10];
string f[10],temp;
int t[10];
vector<int>ans;

int get_weight(int);
void swap_data(int);
void sort_data();

int main(){
  while(cin>>n&&n!=0){
    ans.clear();
    for(int i=0;i<n;i++){
      cin>>f[i];
      cin>>w[i]>>s[i];
    }    
    sort_data();
    for(int i=0;i<n;i++){
      for(int j=0;j<n-1;j++){
	if(w[j]<w[j+1]){
	  swap_data(j);
	  a=get_weight(j+1);
	  if(a>s[j])swap_data(j);
	}
      }
    }
    for(int i=0;i<n;i++)cout<<f[i]<<endl;
  }
  return 0;
}

int get_weight(int x){
  int res=0;
  for(int i=x;i<n;i++)res+=w[i];
  return res;
}

void swap_data(int x){
  tmp=w[x];
  w[x]=w[x+1];
  w[x+1]=tmp;

  tmp=s[x];
  s[x]=s[x+1];
  s[x+1]=tmp;

  temp=f[x];
  f[x]=f[x+1];
  f[x+1]=temp;
}

void sort_data(){
  for(int i=n-1;i>0;i--){
    for(int j=0;j<i;j++){
      if(s[j]<s[j+1])swap_data(j);
      else if(s[j]==s[j+1]&&w[j]<w[j+1])swap_data(j);
    }
  }
}