#include<stdio.h>
#include<stdlib.h>

#define MAX 100
struct TASK{
    int TaskID;
    int Priority;
};
struct Task heap[MAX];
int size=0;
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].Priorty<heap[parent].priority){
          swap(&help[index],&heap[parent]);
          heapifUp(parent);
      }
  } 
  void insert(int Task ID,int priority){
      heap[size] TaskID=TaskID;
      heap[size].Priority=priority;
      heapifyUp(size);
      size++;
  }
  int main(){
      int n;
      scanf("%d",&n);
      for(int i=0;i<n;i++){
          intTask ID,Priority;
          scanf("%d%d",&TaskID,&priority);
          if(TaskID<0||priority<0){
              printf("Invalid Input\n");
              continue;
          }
          insert(TaskID,Priority);
      }
      printf("Task with Highest Priorty:%d\n",heap[0].TaskID);
      return 0
  }
          }
      }
      
  }