#include<stdio.h>
#include<stdlib.h>
typedef struct{
    int id;
    long long priority;
    long long load;
    long long weighted;
}Server;
int compare(const void*a,const void*b){
    Server*s1=(Server*)a;
    Server*s2=(Server*)b;
    if(s1->weighted==s2->weighted){
        return s1->id-s2->id;
    }
    return(s1->weighted<s2->weighted)?-1:1;
}
void swap(Server*a,Server*b){
    Server temp=*a;
    *a=*b;
    *b=temp;
}
void heapifyDown(Server heap[],int size,int i){
    int smallest=i;
    int left=2*i+1;
    int right=2*i+2;
    if(left<size&&compare(&heap[left],&heap[smallest])<0)
    smallest=left;
    if(right<size&&compare(&heap[right],&heap[smallest])<0)
    smallest=right;
    if(smallest!=i){
        swap(&heap[i],&heap[smallest]);
        heapifyDown(heap,size,smallest);
    }
}
void heapifyUp(Server heap[],int i){
    int parent=(i-1)/2;
    if(i>0&&compare(&heap[i],&heap[parent])<0){
        swap(&heap[i],&heap[parent]);
        heapifyUp(heap,parent);
    }
}
Server extractMin(Server heap[],int*size){
    Server min=heap[0];
    heap[0]=heap[--(*size)];
    heapifyDown(heap,*size,0);
    return min;
}
void insertHeap(Server heap[],int*size,Server s){
    heap[(*size)++]=s;
    heapifyUp(heap,*size-1);
}
int main(){
    int N;
    if(scanf("%d",&N)!=1||N<1||N>100000){
        printf("Invalid input");
        return 0;
    }
    Server*servers=(Server*)malloc(N*sizeof(Server));
    if(!servers)return 0;
    for(int i=0;i<N;i++){
        long long priority,load;
        if(scanf("%lld %lld",&priority,&load)!=2||priority<0||load>0){
            printf("Invalid input");
            free(servers);
            return 0;
        }
        servers[i].id=i+1;
        servers[i].priority=priority;
        servers[i].load=load;
        servers[i].weighted=priority*load;
    }
    int M;
    if(scanf("%d",&M)!=1||M<1||M>100000){
        printf("Invalid input");
        free(servers);
        return 0;
    }
    Server*heap=(Server*)malloc(N+M)*sizeof(server));
    int heapSize=0;
    for(int i=0;i<M;i++){
        Server chosen=extractMin(heap,&heapSize);
        printf("%d",chosen.id);
        chosen.load++;
        chosen.weighted=chosen.load*chosen.priority;
        insertHeap(heap,&heapSize,chosen);
    }
    printf("\n");
    free(servers);
    free(heap);
    return 0;
}