#include <iostream>
#include <map>
#include <algorithm>
using namespace std;
long long N, Q;
long long kolicine[10007];
long long dani[10007], pitanja[10007], ukupnoPoPronalasku[10007];
long long prviManjiDan(long long x){
    long long ret = N;
    long long levo = 1;
    long long desno = N;
    while(levo <= desno){
        long long sredina = (levo + desno) / 2;
        if(x >= dani[sredina]){
            levo = sredina + 1;
        }
        else if (x < dani[sredina]){
            ret = sredina - 1;
            desno = sredina - 1;
        }
    }
    return ret;
}
int main(){
    cin >> N >> Q;
    for(long long i = 1; i <= N; i++){
        cin >> dani[i] >> kolicine[i];
        ukupnoPoPronalasku[i] = ukupnoPoPronalasku[i - 1] + kolicine[i];
    }
    long long x;
    while(Q--){
        cin >> x;
        if(x < dani[1]){
            cout << 0 << endl;
        }
        else{ //(x >= dani[1] and x < dani[N]){
            long long prviManji = prviManjiDan(x);
            long long ukupnoDoTadaPlazmi = ukupnoPoPronalasku[prviManji];
            cout << min(x - dani[1] + 1, ukupnoDoTadaPlazmi) << endl;
        }
        /*else if(x >= dani[N]){

        }*/
    }
    return 0;
}