#include <stdio.h>
#include <stdlib.h>
#include <limits.h>

#define MAX_SIZE 1000

typedef struct{
    int taskID;
    int priority;
}Task;

Task heap[MAX_SIZE];
int heapSize =0;

void swap(Task *a,Task *b){
    Task temp = *a;
    *a = *b;
    *b = temp;

}

void heapifyUp(int index){
    if(index<=0)
    return;
    int parent=(index-1)/2;
    if(heap[index].priority<heap[parent].priority){
        swap(&heap[index],&heap[parent]);
        heapifyUp(parent);
    }
}

void insertTask(int taskID, int priority){
    heap[heapSize].taskID=taskID;
    heap[heapSize].priority = priority;
    heapifyUp(size);
    size++;
    printf("Task Added: %d\n",taskID)
int main(){
    int n;
    (scanf("%d",&n)!=1);
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;
    }
    insertTask(taskID, priority);
 
}    
    printf("Task with Highest Priority: %d",highest.taskID);

return 0;
}