#include <iostream>

using namespace std;

struct Kupovina
{
    long long dana;
    long long kolicina;
};

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

    Kupovina kupovine[N];
    for (int i=0; i<N; i++)
    {
        Kupovina k;
        cin >> k.dana >> k.kolicina;
        kupovine[i] = k;
    }
    long long stek = 0;

    long long prethodni_dan = 0, dan = 0;
    int k;
    long long pojedeno = 0;
    for (int i=0; i<Q; i++)
    {
        long long pitanje;
        cin >> pitanje;

        while (dan <= pitanje)
        {
            if (dan == 0)
            {
                k = 0;
            }
            if (k<N)
            {
                dan = min(pitanje, kupovine[k].dana);
            } else
            {
                dan = pitanje;
            }

            pojedeno += min(dan-prethodni_dan, stek);
            stek -= min(dan-prethodni_dan, stek);

            if (dan == kupovine[k].dana)
            {
                stek += kupovine[k].kolicina;
                k++;
            }
            if (dan == pitanje) {
                if (0 < stek)
                {
                    cout << pojedeno + 1 << endl;
                } else
                {
                    cout << pojedeno << endl;
                }
                break;
            }

            prethodni_dan = dan;

            // cout << "Dan="<<dan<<" stek="<<stek<<" pojedeno="<<pojedeno<< endl;
        }
    }

    return 0;
}