#include <stdio.h>

int BinarnaPretraga(long long di[], int N, long long k){
    int l=0, d=N-1, s, rez=-1;
    while(l<=d){
        s=(l+d)/2;
        if(di[s]<=k){
            rez=s;
            l=s+1;
        }
		else{
            d=s-1;
        }
    }
    return rez;
}

int main(){
    int N, Q, i, j;
    scanf("%d %d", &N, &Q);

    long long di[N], pi[N], s[N];
    long long ispis[Q];
    
    for(i=0; i<N; i++){
        scanf("%lld %lld", &di[i], &pi[i]);
        s[i]=pi[i];
        if(i>0){
            s[i]+=s[i-1];
        }
    }

    for(i=0; i<Q; i++){
        long long k;
        scanf("%lld", &k);

        int ind=BinarnaPretraga(di, N, k);
        if(ind==-1){
            ispis[i]=0;
        }
		else{
            long long jela=0;
            long long imajos=0;

            for(j=0; j<=ind; j++){
                long long prvi=di[j];
                long long zadnji=(j+1<N) ?di[j+1]-1 :k;

                if (zadnji>k){
                    zadnji=k;
                }

                long long x=zadnji-prvi+1;
                long long ostalo=pi[j]+imajos;

                if (x<=ostalo){
                    jela+=x;
                    imajos=ostalo-x;
                }
				else{
                    jela+=ostalo;
                    imajos=0;
                }
            }

            ispis[i]=jela;
        }
    }

    for (i=0; i<Q; i++){
        printf("%lld\n", ispis[i]);
    }
    
    return 0;
}