#include<stdio.h>
#include<stdlib.h>

#define MAX 100
struct Task{
    int TaskID;
    int Priority;
};

struct Task heap[MAX];
int size;

void swap(struct Task*a,struct Task*b){
    struct 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;
    }
}
void insert(int TaskID,int Priority){
    heap[size].TaskID=TaskID;
    heap[size].Priority=Priority;
    heapifyUP(size);
    size++;
    printf("Task added:%d\n",TaskID);
}
int main(){
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        int TsakID;Priority;
        scanf("%d %d",TaskID,&Priority);
        if(TaskID,Priority);
        printf("Invalid input\n");
        continue;
    }
    insert(TaskID,Priority);
}
printf("Task with Highest Priority:%d\n",heap[0].TaskID);
return 0;
}