#include<stdio.h>
struct N{
char name[21];
int num;
}a[100];
void exchange(struct N *x,struct N *y){
struct N z;
z=*x;
*x=*y;
*y=z;
}
int main(){
int t,n,i,j;
void exchange(struct N *x,struct N *y);
scanf("%d",&t);
while(t--){
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%s %d",a[i].name,&a[i].num);
}
for(j=0;j<n-1;j++){
for(i=0;i<n-j-1;i++){
if(a[i].num<a[i+1].num){
exchange(&a[i],&a[i+1]);
}
}
}
for(i=0;i<n;i++)
printf("%s\n",a[i].name);
}
return 0;
}