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