#include <stdio.h>
#include <string.h>
#include <stdlib.h>
// write your code here......
typedef struct book {
char name[100];
int price;
} book_t;
int main() {
int n;
scanf("%d", &n);
char** book_name = (char**)malloc(n * sizeof(char*));
int* book_price = (int*)malloc(n * sizeof(int));
for (int i = 0; i < n; i++) {
book_name[i] = (char*)malloc(100 * sizeof(char));
scanf("%s %d", book_name[i], &book_price[i]);
}
// write your code here......
book_t* books = (book_t*)malloc(n * sizeof(book_t));
for (int i = 0; i < n; i++) {
strcpy(books[i].name, book_name[i]);
books[i].price = book_price[i];
}
// sort
for (int i = 0; i < n; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (books[j].price > books[j + 1].price) {
book_t temp = books[j];
books[j] = books[j + 1];
books[j + 1] = temp;
}
}
}
// print
for (int i = 0; i < n; i++) {
printf("%s\n", books[i].name);
}
for (int i = 0; i < n; i++) {
free(book_name[i]);
}
free(book_name);
free(book_price);
free(books);
return 0;
}