#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<limits.h>

#define MAX_TASKS 1000

typedef struct{
    int taskID;
    int priority;
} Task;
Task heap [MAX_TASKS];
int heapsize = 0;

void swap(Task* a,Task* b){
     Task temp = *a;
    *a = *b;
    *b = temp;
}
void heapifyUp(int index){
    while(index>0){
        int parent = (index - 1) / 2;
        if(heap[parent].priority>heap[index].priority){
            swap(&heap[parent],&heap[index]);
            index = parent;
        }else{
            break;
        }
    }
}
void insertTask(int taskID, int priority){
Task newTask;
newTask.taskID = taskID;
newTask.priority = priority;
heap[heapsize] = newTask;
heapifyUp(heapsize);
heapsize++;
}
int main(){
    int n;
    if(scanf("%d",&n) != 1 ||n < 1||n>MAX_TASKS){
        printf("Invalid input\n");
        return 0;
    }
    for(int i = 0;i < n; i++){
        int tastID, priority;
        if(scanf(%d %d,&taskID,&priority)!=2 ||priority<0){
            printf("Invalid input\n");
            continue;
        }
    insertTask(taskID,priority);
    printf("Task added:%d\n",taskID);
    }

if(heapsize>0){
    printf("Task with Highest priority:%d\n",heap[0].taskID);
}else{
    printf("No valid task is available.\n");
}
return 0;
}