string[] br = Console.ReadLine().Split();
long N = Convert.ToInt64(br[0]);
long Q = Convert.ToInt64(br[1]);
long i = 0;
long d, p, k;
long[] dan = new long[N];
long[] pakovanja = new long[N];
long[] pitanja = new long[Q];
long[] sume = new long[Q];
long suma = 0;
long skladiste = 0;
long kupovina = 0;


for (i = 0; i < N; i++)
{
    string[] br2 = Console.ReadLine().Split();
    d = Convert.ToInt64(br2[0]);
    p = Convert.ToInt64(br2[1]);
    dan[i] = d;
    pakovanja[i] = p;
}

for (i = 0; i < Q; i++)
{
    skladiste = 0;
    kupovina = 0;
    suma = 0;
    k = Convert.ToInt64(Console.ReadLine());
    pitanja[i] = k;
    for (d = 1; d <= k; d++)
    {
        if (kupovina < N && d == dan[kupovina]) skladiste += pakovanja[kupovina++];
        if (skladiste > 0)
        {
            suma++;
            skladiste--;
        }
        if (skladiste == 0 && kupovina >= N) break;

    }
    sume[i] = suma;
}

Console.WriteLine();

for (i = 0; i < Q; i++)
{
    Console.WriteLine(sume[i]);

}