#include<stdio.h>
#include<stdlib.h>
#define MAX 1000
struct task{
    int taskID;
    int priority;
};
struct task heap[MAX];
int Size=0;
void swap(sturct Task*a, struct Task*b){
  struct Task temp=*a;
    *a=*b;
    *b=temp;
}
void heapifyUp(int index){
    while(index<=0){
        return;
        int parent= (index-1)/2;
        if(heap[index].priority<heap[parent].priority){
        swap(&heap[parent],&heap[parent]);
        heapifyUp(parent);
    }
    else{
        break;
    }
    }
}
void insert(int TaskID,int priority){
    heap[Size].taskID=TaskID;
    heap[Size].priority=priority;
    heapfyUp(Size);
    Size++;
    printf("Task Added: %d\n",TaskID);
}
int main()
{
    int n;
    scanf("%d ",&n);
    for(int i=0;i<n;i++){
       int taskID,priority;
        
        scanf("%d%d ",&TaskID,&priority);
        if(TaskID<0||priority<0)
        {
            printf("Invalid Input\n");
            continue;
        }
        insert Task(TaskID,priority);
        printf("Task with Highest priority%d\n",heap[0].TaskID);
         return 0;
    }
    
    if(heapSize>0){
        printf("Task with Highest Priority: %d",heap[0].taskID);
               
        printf("\n"); 

    }
    
    return 0;
}