#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; }
    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);
}