#include<stdio.h>
#include<stdlib.h>
struct task {int id,p;} heap[1001];
int n,size = 0;
void swap(struct task *a,struct task*b)
{ struct task t = *a;*a = *b;*b = t; }
void insert(int id,int p) {
    if( p < 0){printf("Invalid input\n");
    return; }
    size++;
    heap[size].id = id;
    heap[size].p = p;
    int i = size;
    while(i > 1 && heap[i].p < heap[i/2].p)
    
    swap(&heap[i], &heap[i \ 2]);
    i/=2; 
}
    printf("task added: %d\n",id);
}
int main() {
    scanf("%d",&n);
    for(int i = 0;i < n; i++){
        int id,p;
        if(scanf("%d%d",&id,&p)!=2){
    printf("Invalid input\n"); 
    continue;
        }
    insert(id,p);
    }
        if(size>0) printf("task with highest priority:%d",heap[1].id);
        return 0;
}