#include <iostream>
using namespace std;

int main(){
    int n, q;
    cin >> n >> q;
    long long* p = new long long[n];
    long long* d = new long long[n];
    long long k;

    for (int i = 0; i < n; i++)
    {
        cin >> p[i] >> d[i];
    }
    p[n] = 1000000000000000000;

    long long trenD = 0, ukupnoD = 0, l = 0, r = -1;
    int j = 0, ind = 1;
    for (int i = 0; i < q; i++)
    {
        cin >> k;

        if (i == 0)
        {
            l = p[i];
        }

        if(k < p[j + 1])
        {
            r = k;
        }
        else
        {
            r = p[j + 1];
        }
        
        while(l < k)
        {
            trenD += d[j];
            
            long long z = r - l;
            if(ind && trenD < z + 1 || !ind && trenD < z)
            {
                ukupnoD += trenD;
                trenD = 0;
                ind = 1;
                j++;

                l = p[j];
            }
            else
            {
                ukupnoD += z;
                trenD -= z;
                if(ind)
                {
                    ukupnoD++; trenD--;
                    ind = 0;
                }

                l = r;
                j++;
            }
            
            if(k < p[j + 1])
            {
                r = k;
            }
            else
            {
                r = p[j + 1];
            }
        }
        
        cout << ukupnoD << "\n";
    }
    
    delete[] p;
    delete[] d;

    return 0;
}