#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

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

    vector<pair<long long int, long long int>> kupovine(N);
    for (long long int i = 0; i < N; ++i) {
        cin >> kupovine[i].first >> kupovine[i].second;
    }

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

    sort(upiti.begin(), upiti.end());

    long long int trenutniDan = 1;
    long long int dostupno = 0;
    long long int ukupnoPojedeno = 0;

    vector<long long int> odgovori(Q);
    long long int indexKupovine = 0;

    for (long long int i = 0; i < Q; ++i) {
        long long int doKogDana = upiti[i];

        while (trenutniDan <= doKogDana) {
            while (indexKupovine < N && kupovine[indexKupovine].first == trenutniDan) {
                dostupno += kupovine[indexKupovine].second;
                ++indexKupovine;
            }

            if (dostupno > 0) {
                --dostupno;
                ++ukupnoPojedeno;
            }

            ++trenutniDan;
        }

        odgovori[i] = ukupnoPojedeno;
    }

    for (const auto& odgovor : odgovori) {
        cout << odgovor << endl;
    }

    return 0;
}