#include<stdio.h>
#include<stdlib.h>
typedef struct{
    int id;
    int p;
}Task;
void swap(Task*a,Task*b){
    Task t=*a;
    *a=*b;*b=t;
}
void heap(Task h[],int i){
    while(i>0&&h[(i-1)/2].p>h[i].p){
        swap(&h[(i-1)/2],&h[i]);
        i=(i-1)/2;
    }
}
int main(){
    int n,id,p;
    if(scanf("%d",&n)!=1||n<1)return 0;
    Task h[1005];
    int hs=0;
    for(int i=0;i<n;++i){
        if(scanf("%d %d",&id,&p)!=2||id<0||p<0){
            printf("Invalid Input\n");
            continue;
        }
        h[hs].id=id;
        h[hs].p=p;
        heap(h,hs);
        hs++;
        printf("Task Added: %d\n",id);
    }
    if(hs==0)return 0;
    int minIdx=0;
    for(i=1;i<hs;++i)
        if(h[i].p<h[minIdx].p)
            minIdx=i;
    printf("Task with Highest Priority: %d\n",h[minIdx].id);
    return 0;
}