#include <bits/stdc++.h>

using namespace std;

void prefiksSuma(int duzina, long long ulaz[], long long izlaz[])
{
    izlaz[0] = ulaz[0];
    for(int i = 1; i<duzina; i++)
    {
        izlaz[i] = ulaz[i] + izlaz[i-1];
    }
}

int binarna(int duzina, long long vrednost, long long niz[])
{
    int l = 0, d = duzina-1;
    int pok = 0;

    while(vrednost<=niz[pok] || vrednost>=niz[pok+1])
    {
        if(vrednost == niz[pok]) return pok+1;

        if(vrednost>niz[pok])
        {
            pok+=(d-pok)/2;
            l = pok;
        }
        else
        {
            pok-= (pok-l)/2;
            d = pok;
        }

    }

    return pok+2;
}

int main()
{
    int n, q;

    scanf("%d%d", &n, &q);

    long long d[n], p[n];

    for(int i = 0; i<n; i++) scanf("%lld%lld", &d[i], &p[i]);

    long long h[q];

    for(int i = 0; i<q; i++) scanf("%lld", &h[i]);

    int jeLiNula = 1;

    for(int i = 0; i<n; i++) if(p[i]!=0) jeLiNula = 0;

    if(jeLiNula)
    {
        long long prefd[n];
        prefiksSuma(n, d, prefd);
        for(int i = 0; i<q; i++)
        {
            int c = 0;
            if(h[q] > prefd[n-1]) printf("-1\n");
            else printf("%d\n", binarna(n, h[i], prefd));

        }
        return 0;
    }

    jeLiNula = 1;

    for(int i = 0; i<n; i++) if(d[i]!=0) jeLiNula = 0;

    if(jeLiNula)
    {
        long long prefd[n];
        prefiksSuma(n, p, prefd);
        prefiksSuma(n, prefd, prefd);
        for(int i = 0; i<q; i++)
        {
            int c = 0;
            if(h[q] > prefd[n-1]) printf("-1\n");
            else printf("%d\n", binarna(n, h[i], prefd));

        }
        return 0;
    }
    return 0;
}