#include<stdio.h>
#define MAX 1005
int heap[MAX][2];
int size=0;
void swap(int i,int j)
{
    int tempId=heap[i][0];
    int tempPr=heap[i][1];
    heap[i][0]=heap[j][0];
    heap[i][1]=heap[j][1];
    heap[j][0]=tempId;
    heap[j][1]=tempPr;
}
void up(int i){
    while(i>1 ){
        int p=i/2;
        if(heap[p][1]>heap[i][1||(heap[p][1]==heap[i][1]&&heap[p][0]>heap[i][0]:)){
            swap(i,p);
            i=p;
        }else break;
        
    }
}
int main(){
    int n;
    if(scanf("%d",&n)!=1||n<=0){
        printf("Invalid Input\n");
        return 0;
    }
    for(int i=1;i<=n;i++){
        int id,pr;
        if(scanf("%d %d",&id,&pr)!=2||id<=0||pr<=0){
            printf("Invalid Input\n");
            return 0;
        }
        size++;
        heap[size][0]=id;
        heap[size][1]=pr;
        up(size);
        printf("Task Added: %d\n",id);
    }
    printf("Task With Highest Priority:%d\n",heap[1][0]);
    return 0;
}