#include<stdio.h>
struct Task{
    int id;
    int priority;
};
struct Task heap[1000];
int size=0;
void swap(struct Task *a,struct Task *b){
    struct Task temp =*a;
    *a=*b;
    *b=temp;
}
void insert(int id,int priority){
    heap[size].id=id;
    heap[size].priority=priority;
    int i=size;
    while(i>0 && heap[(i-1)/2].priority>heap[i].priority){
        i=(i-1)/2;
    }
}
int main(){
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        int id,priority;
        scanf("%d %d",&id, &priority);
        if(priority <0){
            printf("Invalid Inputn");
        }else{
            insert(id,prioprity);
            printf("Task Added: %d\n",id);
            insert(id,priority);
        }
    }
    if(size>0){
        ]printf("Task with Highest Priority: %d ",heap[0].id);
    }
    return 0;
}