#include<stdio.h>
#include<stdlib.h>

struct Node {
    int id;
    struct Node *next;
};

struct Node *front = NULL, *rear = NULL;

void enquene(int id) {
    struct Node *n = malloc(sizeof(struct
    Node));
    n->id = id;
    n->next = NULL;
    if (!rear) front = rear = n;
    else rear->next = n, rear = n;
}

int main() {
    int n, id, arrival;
    scanf("%d", &n);
    
    if (n <= 0) {
        printf("Invalid input");
        return 0;
    }
    
    while (n--) {
        scanf("%d %d", &id, &arrival);
        if (id <= 0 || arrival < 0) {
            printf("Invalid input");
            return 0;
        }
        enqueue(id);
    }
    
    while (front) {
        printf("%d\n", front->id);
        struct Node *t = front;
        front = front->next;
        free(t);
    }
    
    return 0;
}