#include <bits/stdc++.h>
using namespace std;

int N,Q;
long long dani[300005],plazma[300005],pitanja[300005],odgovor[300005];

int main(){

    scanf("%d%d",&N,&Q);
    for(int i=1; i<=N; i++){
        scanf("%lld%lld",&dani[i],&plazma[i]);
    }
    dani[N+1]=-1;
    for(int i=1; i<=Q; i++){
        scanf("%lld",&pitanja[i]);
    }
    pitanja[0]=-1;

    int d=1,q=1;
    long long pojedeno=0;
    while(q<=Q){

        if(dani[d]==-1){
            for(int i=q; i<=Q; i++)
                odgovor[i]=pojedeno;
            break;
        }
        if(pitanja[q]<dani[d]){
            odgovor[q]=pojedeno;
            q++;
            continue;
        }
        if(dani[d]>=pitanja[q-1]){
            if(plazma[d]>pitanja[q]-dani[d]+1){
                pojedeno+=(pitanja[q]-dani[d]+1);
                plazma[d]-=(pitanja[q]-dani[d]+1);
                odgovor[q]=pojedeno;
                q++;
            }
            else if(plazma[d]==pitanja[q]-dani[d]+1){
                pojedeno+=(pitanja[q]-dani[d]+1);
                plazma[d]=0;
                odgovor[q]=pojedeno;
                d++;
                q++;
            }
            else{
                pojedeno+=plazma[d];
                plazma[d]=0;
                d++;
            }
        }
        else{
            if(plazma[d]>pitanja[q]-pitanja[q-1]){
                pojedeno+=(pitanja[q]-pitanja[q-1]);
                plazma[d]-=(pitanja[q]-pitanja[q-1]);
                odgovor[q]=pojedeno;
                q++;
            }
            else if(plazma[d]==pitanja[q]-pitanja[q-1]){
                pojedeno+=(pitanja[q]-pitanja[q-1]);
                plazma[d]=0;
                odgovor[q]=pojedeno;
                d++;
                q++;
            }
            else{
                pojedeno+=plazma[d];
                plazma[d]=0;
                d++;
            }
        }
    }

    for(int i=1; i<=Q; i++){
        printf("%lld\n",odgovor[i]);
    }

    return 0;
}