#include <iostream>
#include <cmath>

using namespace std;

unsigned long long potezi[200000][2];
unsigned long long sefovi[200000];

unsigned long long najvise[200001];

int main()
{
    int n, q;
    cin >> n >> q;

    for (int i = 0; i<n; i++) {
        cin >> potezi[i][0] >> potezi[i][1];
    }

    for (int i = 0; i<q; i++) {
        cin >> sefovi[i];
    }

    for (int i = 1; i<=n; i++) {
        unsigned long long dk = potezi[i-1][0];
        unsigned long long pk = potezi[i-1][1];
        if (pk >= dk) {
            for (int j = i; j<=n; j++) {
                najvise[j] += (j-i+1)*pk;
            }
        } else {
            if (pk) {
                unsigned long long od = i + ceil((float)dk/pk) - 1;
                for (int j = i; j < od ; j++) {
                    najvise[j] += dk;
                }
                for (int j = od; j<=n; j++) {
                    najvise[j] += (j-i+1)*pk;
                }
            } else {
                for (int j=i; j<=n; j++) {
                    najvise[j] += dk;
                }
            }
        }

    for (int i = 0; i<q; i++) {
        int poz = lower_bound(najvise, najvise + n + 1, sefovi[i]) - najvise;
        if (poz > n) poz = - 1;
        cout << poz << '\n';
    }

    return 0;
}