#include <stdio.h>
#include <stdlib.h>

void plazma(long long dan,int *p,long long *d, long long *br, unsigned long long *suma, long long *plz)
{
    while((*br)<=dan){
        if((*br)==(*d)){
            (*suma)+=*p;
            d++;
            p++;
        }
        if((*suma)>0){
            (*plz)++;
            (*suma)--;
        }
        (*br)++;
    }
    (*br)--;
}

void unos_1(int *p, long long *d,int n)
{
    int *pom_1=p;
    long long *pom_2=d;
    for(int i=0;i<n;i++,pom_1++,pom_2++){
        scanf("%lld %d",pom_2,pom_1);
    }
}

void unos_2(int q, long long *d, int *p)
{
    long long k;
    long long br=1,plz=0; //razmisli o ovome koja treba jer imas 10^9 opseg za p a dodaje se stalno
    unsigned long long suma=0; //vidi dal je dobro da sve ide u jednu prom
    for(int i=0;i<q;i++){
        scanf("%lld",&k);
        plazma(k,p,d,&br,&suma,&plz);
        printf("%lld\n",plz);
    }
}

int main()
{
    int n,q;
    scanf("%d %d",&n,&q);
    int *p=(int*)malloc(n*sizeof(int));
    long long *d=(long long*)malloc(n*sizeof(long long));
    unos_1(p,d,n);
    unos_2(q,d,p);
    free(p);
    free(d);
    return 0;
}