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

long long n,q,cnt=0,cnt2=0,k,res;
struct interval{
    long long levi,desni;
};
interval niz[300005];
long long d,p;

int main(){

    scanf("%lld %lld", &n, &q);
    for(int i=1;i<=n;i++){
        scanf("%lld %lld", &d, &p);
        if(niz[cnt].desni<d){
            cnt++;
            niz[cnt].levi=d;
            niz[cnt].desni=d+p-1;
        }
        else{
            niz[cnt].desni+=p;
        }
    }
//    cout << endl;
//    for(int i=1;i<=cnt;i++) cout << niz[i].levi << " " << niz[i].desni << "\n";
//    cout << endl;
    for(int i=1;i<=q;i++){
        res=0;
        bool t=false;
        scanf("%lld", &k);
        if(k>niz[cnt].desni){
            for(int j=1;j<=cnt;j++) res+=niz[j].desni-niz[j].levi+1;
        }
        else if(k<niz[1].levi){}
        else{
            for(int j=cnt;j>=1;j--){
                if(k>=niz[j].levi and k<=niz[j].desni){
                    cnt2=j;
                    break;
                }
            }
//            cout << cnt2 << endl;
            for(int j=1;j<cnt2;j++) res+=niz[j].desni-niz[j].levi+1;
            res+=k-niz[cnt2].levi+1;
        }
        printf("%lld \n", res);
    }

return 0;
}