#include <bits/stdc++.h>

using namespace std;

struct imaPlazme{
    long long poc;
    long long kraj;
};

imaPlazme niz[300100];

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    long long n = 0, q = 0;
    cin >> n >> q;
    long long brojac = 0;
    long long dan = 0, kolicina = 0;
    cin >> dan >> kolicina;
    niz[0].poc = dan;
    niz[0].kraj = dan+kolicina;
    for(int i = 1; i < n; i++){
        cin >> dan >> kolicina;
        if(dan <= niz[brojac].kraj){//MOZDA BOLJE SAMO <
            niz[brojac].kraj += kolicina;
        }
        else{
            brojac++;
            niz[brojac].poc = dan;
            niz[brojac].kraj = dan+kolicina;
        }
    }
    long long brtr = 0;
    long long rez = 0;
    long long kpre = 0, k = 0;
    for(int i = 0; i < q; i++){
        kpre = k;
        cin >> k;
        /*if(brtr == -1){
            if(k >= niz[0].poc){
                rez += min(k, niz[0].kraj-1)-niz[0].poc+1;
                brtr++;
            }
        }
        if(brtr != -1){
            if(brtr+1 <= brojac){
                while(niz[brtr+1].poc <= k){
                    rez += niz[brtr].kraj-max(kpre+1, niz[brtr].poc);
                    brtr++;
                    if(brtr > brojac){
                        break;
                    }
                }
            }
            if(niz[brtr].kraj >= k){
                rez += niz[brtr].kraj-niz[brtr].poc;
            }
            else{
                rez += k-niz[brtr].poc+1;
            }
        }
        if(niz[brtr].kraj < )*/
        while(niz[brtr].kraj-1 < k){
            rez += niz[brtr].kraj - max(kpre+1, niz[brtr].poc);
            brtr++;
            if(brtr > brojac){
                brojac--;
                break;
            }
        }
        if(niz[brtr].poc <= k and brtr <= brojac){
            rez+= k+1-max(kpre+1, niz[brtr].poc);
        }
        cout << rez << endl;
    }
    return 0;
}