using System;
class Takmicenje
{
    static void Main(string[] args)
    {
        string[] s = Console.ReadLine().Split();
        int n = int.Parse(s[0]);
        int q = int.Parse(s[1]);

        long[,] nabavka = new long[n, 2];
        for (int i = 0; i < n; i++)
        {
            string[] s2 = Console.ReadLine().Split();
            nabavka[i, 0] = long.Parse(s2[0]);
            nabavka[i, 1] = long.Parse(s2[1]);
        }

        long[] pitanje = new long[q];

        for (int i = 0; i < q; i++)
        {
            pitanje[i] = long.Parse(Console.ReadLine());
        }

        for (int i = 0; i < q; i++)
        {
            long pojela = 0;
            long pozicija = nabavka[0, 0];
            long zalihe = nabavka[0, 1];
            if (pitanje[i] < pozicija)
            {
                Console.WriteLine(0);
                continue;
            }

            for (int j = 1; j < n; j++)
            {
                if (pitanje[i] < nabavka[j, 0])
                {
                    pojela += pitanje[i] - pozicija + 1;
                    break;
                }

                if (zalihe < (nabavka[j, 0] - pozicija))
                {
                    pojela += zalihe;
                    pozicija = nabavka[j, 0];
                    zalihe = nabavka[j, 1];

                }

                else
                {
                    zalihe += nabavka[j, 1];
                    pojela += nabavka[j, 0] - pozicija;
                    zalihe -= nabavka[j, 0] - pozicija;
                    pozicija = nabavka[j, 0];

                }



            }

            if (pitanje[i] > nabavka[n - 1, 0])
            {

                if (zalihe > pitanje[i])
                    pojela += pitanje[i] - pozicija + 1;
                else

                    pojela += zalihe;

            }
            Console.WriteLine(pojela);

        }

    }
}