#include <bits/stdc++.h>

using namespace std;
int n, q;
vector<long long int> d;//d
vector<long long int> p;
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cin >> n >> q;

    d.resize(n);
    p.resize(n);
    //kao dp kao hahahhahhhahahahhah. pozdrav za marka popovica.
    long long int ohajofajnalbos;
    bool slucd = true, slucp= true;
    for(int i = 0; i < n ; i++){
        cin >> d[i]  >> p[i];
        if(d[i] !=0)slucp = false;
        if(p[i] != 0)slucd = false;
    }
    if(slucd){
        vector<long long int> prefiksne(n);
        prefiksne[0] = d[0];
        for(int i = 1; i < n ; i++){
            prefiksne[i] = prefiksne[i-1]+d[i];
        }
        for(int i = 0; i < q; i++){
            cin >> ohajofajnalbos;
            if(lower_bound(prefiksne.begin(), prefiksne.end(), ohajofajnalbos) - prefiksne.begin() == n)cout << -1 << "\n";
            else cout << lower_bound(prefiksne.begin(), prefiksne.end(), ohajofajnalbos) - prefiksne.begin()+1 << "\n";
        }
        return 0;
    }
    if(slucp){
        vector<long long int> prefiksne(n);
        long long int suma = p[0];
        prefiksne[0] = p[0];
        for(int i = 1; i < n ; i++){
            prefiksne[i] = prefiksne[i-1]+p[i]+ suma;
            suma += p[i];
        }
        for(int i = 0; i < q; i++){
            cin >> ohajofajnalbos;
            if(lower_bound(prefiksne.begin(), prefiksne.end(), ohajofajnalbos) - prefiksne.begin() == n)cout << -1 << "\n";
            else cout << lower_bound(prefiksne.begin(), prefiksne.end(), ohajofajnalbos) - prefiksne.begin()+1 << "\n";
        }
        return 0;
    }
    for(int i = 0; i < q; i++){
        // radim da je bolje poison do poslednjeg
        vector<long long int> prefiksne(n);
        vector<long long int> prefiksnesad(n);
        long long int suma = p[0];
        prefiksne[0] = p[0];
        prefiksnesad[0] = d[0];
        for(int i = 1; i < n ; i++){
            prefiksne[i] = prefiksne[i-1]+p[i]+ suma;
            prefiksnesad[i] = prefiksne[i-1]+d[i]+suma;
            suma += p[i];

        }
        prefiksne[n-1] = max(prefiksne[n-2]+suma+d[n-1], prefiksne[n-2]+suma+p[n-1]);
        for(int i = 0; i < q; i++){
            cin >> ohajofajnalbos;
            if(min(lower_bound(prefiksne.begin(), prefiksne.end(), ohajofajnalbos) - prefiksne.begin(),lower_bound(prefiksnesad.begin(), prefiksnesad.end(), ohajofajnalbos) - prefiksnesad.begin()) == n)cout << -1 << "\n";
            else cout << min(lower_bound(prefiksne.begin(), prefiksne.end(), ohajofajnalbos) - prefiksne.begin(),lower_bound(prefiksnesad.begin(), prefiksnesad.end(), ohajofajnalbos) - prefiksnesad.begin())+1 << "\n";
        }
        return 0;
    }
    return 0;
}