#include<stdio.h>
struct cf {
char name[20];
float dj;
};
int main()
{
struct cf st[100], sk;
int n,j,i,p;
scanf("%d",&n);
for(i=0; i<n; i++)
{
scanf("%s",st[i].name);
scanf("%f",&st[i].dj);
}
for(i=0; i<n-1; i++)
for(j=0; j<n-1-i; j++)
if(st[j].dj<st[j+1].dj) { //排序
sk = st[j];
st[j]=st[j+1];
st[j+1]=sk;
}
scanf("%d", &p);
if (p<st[0].dj) {
printf("chitu");
}
for(i=0; i<n; i++)
if(p >= st[i].dj) {
p = p - st[i].dj;
printf("%s\n",st[i].name);
}
}