#include<stdio.h>
#include<stdlib.h>
#define MAX 1000
typedef struct{
    int taskId;
    int priority;
}Task;
Task heap[MAX];
int size =0;
void swap(Task *a ,Task *b){
    Task temp= *a;
    *a=*b;
    *b=temp;
}
void heapifyUp(int index){
    while(index>0&&heap[index].priority<heap[(index-1)/2].priority){
        swap(&heap[index],&heap[(index-1)/2]);
        index=(index-1)/2;
    }
}
voidinsertTask(int taskID,int priority){
    if(size>=MAX){
        printf("HEAP OVER FLOW\n");
        return;
    }
    heap[size].taskID=taskID;
    heap[size].priority=priority;
    heapifyUp(size);
    size++;
    printf("task Added:%d\n",taskID);
    
    
}
int getHighestPriorityTask(){
    if (size==0)return-1;
    return heap[0].taskID;
}
int main(){
    int n;
    if(scanf("%d",&n)!=1||n<=0){
        printf("INVALID INPUT\n");
        return 1;
    }
    for(int i=0;i<n;i++){
        int taskID,priority:
        if(scanf("%d%d",&taskID,&priority)!=2){
            printf("INVALID INPUT\n");
            continue;
        }
        insterTask(taskID,priority);
    }
    int topTask=getHighestPriorityTask();
    if(topTask!=-1)
    printf("TASK WITH HIGHER PRIORITY%d\n",topTask);
    else
    prin
}