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

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

}

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 *resenje, int *n)
{
    long long k;
    long long 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
    long long *pom=resenje;
    long long *pom_d=d;
    int *pom_p=p;
    for(int i=0;i<q;i++,pom++){
        scanf("%lld",&k);
        plazma(k,&pom_p,&pom_d,&suma,&plz,n);
        *pom=plz;
    }
}

void ispis(long long *resenje, int q)
{
    for(int i=0;i<q;i++,resenje++){
        printf("%lld\n",*resenje);;
    }
}

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));
    long long *resenje=(long long*)malloc(q*sizeof(long long));
    unos_1(p,d,n);
    unos_2(q,d,p,resenje,&n);
    ispis(resenje,q);
    free(p);
    free(d);
    return 0;
}