#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<int,int> P;
typedef vector<int> VI;
typedef vector<VI> VVI;
const double PI = 3.14159265358979323846;
const double EPS = 1e-12;
const int INF = numeric_limits<int>::max() / 2;
const int NEG_INF = numeric_limits<int>::min() / 2;
const int MOD=1e9+7;

int main(){
  cin.tie(0);
  ios::sync_with_stdio(false);

  int n;
  while(true){
      cin>>n;
      if(n==0) break;
      std::vector<string> f(n);
      std::vector<int> w(n),s(n),v(n),res(n);
      for(int i=0;i<n;i++) cin>>f[i]>>w[i]>>s[i];
      for(int i=0;i<n;i++) v[i]=i;
      double mi=1e9;
      do{
          double g=0;//,sum=0;
          for(int i=1;i<=n;i++){
              g+=i*w[v[i-1]];
             // sum+=w[v[i-1]];
          }
          bool flag=true;
          for(int i=0;i<n;i++){
              int wa=0;
              for(int j=i+1;j<n;j++) wa+=w[v[j]];
              if(s[v[i]]<wa) flag=false;
          }
          if(flag){
              if(g<mi){
                  for(int i=0;i<n;i++) res[i]=v[i];
                  mi=g;
              }
          }
      }while(next_permutation(v.begin(),v.end()));
      for(int i=0;i<n;i++) cout<<f[res[i]]<<endl;
  }
}