#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 ins(int id, int pri){
    heap[size].id=id;
    heap[size].pri=pri;
    int i=size;
    size++;
    while(i>0 && heap[(i-1)/2].priority>heap[i].priority){
        swap(&heap[i],&heap[(i-1)/2]);
        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(pri<0){
            printf("Invalid Input");
        }else{
            ins(id,priority);
            printf("Task Added: %d\n",id);
            ins(id,priority);
        }
    }
    if(size>0){
        printf("Task with Highest Priority: %d",heap[0].id);
    }
    return 0;
}