#include <iostream>
#include <queue>
using namespace std;
struct odlazak{
    unsigned long long int d;
    unsigned long long int p;
    
};
int main(){
    int n, q;
    cin >> n >> q;
    
    odlazak niz[n];
    for(int i = 0; i < n; ++i){
        cin >> niz[i].d >> niz[i].p;
    }
    
    unsigned long long int pitanje;
    queue<unsigned long long int> red;
    for(int i = 0; i < q; ++i){
        cin >> pitanje;
        unsigned long long int broj_pakovanja = 0, pom = 0;
        for(int j = 0; j < n; ++j){
            if(niz[j + 1].d <= pitanje && j!=n){
                if(niz[j + 1].d - niz[j].d >= niz[j].p + pom){
                    broj_pakovanja += (niz[j].p + pom);
                    pom = 0;
                }else{
                    broj_pakovanja += niz[j + 1].d - niz[j].d;
                    pom += (niz[j].p - (niz[j + 1].d - niz[j].d));
                }
            }else{
                if(pitanje < niz[j].d){
                    broj_pakovanja = 0;
                }else if(pitanje - niz[j].d + 1 >= niz[j].p + pom){
                    broj_pakovanja += niz[j].p + pom;
                }else{
                    broj_pakovanja += pitanje - niz[j].d + 1;
                }
                break;
            }
            //cout << broj_pakovanja << endl;
        }
        
        red.push(broj_pakovanja);
    }
    
    while(!red.empty()){
        cout << red.front() << endl;
        red.pop();
    }

    return 0;
}