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

long long int resenje(const vector<long long int>& dani, const vector<long long int>& plazme, long long int krajnji_dan) {
    long long int broj_plazmi = 0; 
    long long int rezultat = 0;    
    size_t j = 0;                 

    for (long long int trenutni_dan : dani) {
        if (trenutni_dan > krajnji_dan) {
            break; 
        }
        long long int proslo_dana;

        if (j == 0) {
            proslo_dana = trenutni_dan; 
}       else {
            proslo_dana = trenutni_dan - dani[j - 1];  
}
        long long int potroseno = min(proslo_dana, broj_plazmi);
        rezultat += potroseno;
        broj_plazmi -= potroseno;

       
        broj_plazmi += plazme[j];
        j++;
    }


    if (j > 0) {
        long long int preostali_dani = krajnji_dan - dani[j - 1] + 1;
        rezultat += min(preostali_dani, broj_plazmi);
    }

    return rezultat;
}

int main() {
    int N,Q;
    cin >> N ;
    cin>> Q;

    vector<long long int> dani(N);
    vector <long long int>plazme(N);
    vector <long long int> upiti(Q);
    for (int i = 0; i < N; i++) {
        cin >> dani[i] >> plazme[i];
    }
    for (int i = 0; i < Q; i++) {
        cin >> upiti[i];
    }

    for (const auto& upit : upiti) {
        cout << resenje(dani, plazme, upit) << endl;
    }

    return 0;
}