#include<stdio.h>
#include<stdlib.h>
#define MAX 1000
struct Task{
    int id;
    int p;
};
struct task heap[MAX];
int size=0;
void swap(struct task *a, struct task *b){
  struct task temp= *a;
    *a=*b;
    *b=temp;
}
void heapify_up(int index){
    if(index<=0)
        return;
        int parent= (index-1)/2;
        if(heap[index].p<heap[parent].p){
        swap(&heap[index],&heap[parent]);
        heapify_up(parent);
    }
}
void heapfy_down(int index){
    int left=2*index +1;
    int right=2*index +2;
    int smallest= index;
    if(left,size && heap[left].p<heap[samllest].p)
         samllest=left;
    if(right<heap[right].p<heap[samllest].p)
         smallest=right;
    if(samllest !=index){
        swap(&heap[index],&heap[smallest]);
        heapfy_down(smallest);
    }
}
vois insert(int id,int p){
    heap[size].id=id;
    heap[size].p=p;
    heapfy_up(size);
    size++;
    printf("Task Added: %d\n",id);
    return min_task;
}

int main(){
    int n;
    scanf("%d ",&n);
    for(int i=0;i<n;i++){
       int id,p;
        scanf("%d%d ",&id,&p);
        if(id<0 || p<0){
            printf("Invalid Input\n");
            continue;
        }
        insert(id,p);
    }
    printf("Task with Highest priority: %d\",heap[0].id);
    else
        printf("No valid task");
    return 0;
}