#include<stdio.h>
#include<stdlib.h>
#define max 100
struct task{
    int taskid;
    int pri;
};
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(int index){
    if(index<=0)
    return;
    int parent=(index-1)/2;
if(heap[index].pri<heap[parent].pri){
    swap(&heap[index],&heap[parent]);
    heapify(parent);
}
}
void insert(int taskid,int priority){
    heap[size].taskid=taskid;
    heap[size].pri=pri;
    heapify(size);
    size++;
    printf("Task added:%d\n",taskid);
}
 
 int main(){
     int n;
     scanf("%d",&n);
     for(int i=0;i<n;i++){
         int taskid,pri;
         scanf("%d%d",&taskid,&pri);
         if(taskid<0||pri<0){
             printf("Invalid input\n");
             continue;
             
         }
     insert(taskid,pri);
     printf("task with the highest priority: %d\n",heap[0],taskid[0]);
     return 0;
         
     }
     
 }