#include <iostream>
#include <vector>

#define maxq 300000
#define maxn 300000
#define ll long long

using namespace std;

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

    vector<ll> preostao(N );
    vector<ll> d(N );
    vector<ll> pojedena(N );

    cin >> d[0];
    cin >> preostao[0];
    pojedena[0] = 0;

    for (ll i = 1; i < N; i++)
    {
        cin >> d[i];
        ll x;
        cin >> x;
        if (preostao[i - 1] < d[i] - d[i - 1])
        {
            preostao[i] = x;
            pojedena[i] = pojedena[i - 1] + preostao[i - 1];
        }
        else
        {
            preostao[i] = (x + preostao[i - 1]) - (d[i] - d[i - 1]);
            pojedena[i] = pojedena[i - 1] + (d[i] - d[i - 1]);
        }
    }

    vector<ll> odgovori(Q);
    for (ll i = 0; i < Q; i++)
    {
        ll k;
        cin >> k;

        ll l = 1;
        ll r = N;
        while (l <= r)
        {
            ll m = l + (r - l) / 2;
            if (d[l] >= k)
            {
                if (d[l] == k)
                {
                    odgovori[i] = preostao[l] > 0 ? pojedena[l] + 1 : pojedena[l];
                }
                else
                {
                    l--;
                    ll x = preostao[l] > k - d[l] ? k - d[l] + 1 : preostao[l];
                    odgovori[i] = pojedena[l] + x;
                }
                break;
            }
            if (d[r] <= k)
            {
                if (d[r] == k)
                {
                    odgovori[i] = preostao[r] > 0 ? pojedena[r] + 1 : pojedena[r];
                }
                else
                {
                    ll x = preostao[r] > k - d[r] ? k - d[r] + 1 : preostao[r];
                    odgovori[i] = pojedena[r] + x;
                }
                break;
            }
            if (d[m] == k)
            {
                odgovori[i] = preostao[m] > 0 ? pojedena[m] + 1 : pojedena[m];
                break;
            }
            if (d[m] < k)
            {
                l = m + 1;
                r--;
            }
            if (d[m] > k)
            {
                l++;
                r = m - 1;
            }
        }
    }

    for (ll i = 0; i < Q; i++)
    {
        cout << odgovori[i] << endl;
    }
}