global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;

namespace _b_plazma
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // prvi deo ulaza
            string[] ulaz1 = Console.ReadLine().Split(" ");
            int N = int.Parse(ulaz1[0]);
            int Q = int.Parse(ulaz1[1]);

            // uspesne kupovine stavljamo u dictionary
            Dictionary<ulong,ulong> UspesneKupovine = new Dictionary<ulong,ulong>();

            // drugi deo ulaza
            for (int i = 0; i < N; i++)
            {
                string[] ulaz2 = Console.ReadLine().Split(" ");
                ulong dan = Convert.ToUInt64(ulaz2[0]);
                ulong pakovanja = Convert.ToUInt64(ulaz2[1]);
                UspesneKupovine[dan] = pakovanja;
            }

            List<ulong> Upiti = new List<ulong>();
            //Upiti.Add(0);
            for (int j = 1; j <= Q; j++)
            {
                ulong upit_dan = Convert.ToUInt64(Console.ReadLine());
                Upiti.Add(upit_dan);
            }

            // proveravamo za svako pitanje
            ulong stanje = 0;
            ulong pojedene = 0;

            for (ulong d = 0; d <= Upiti[0]; d++)
            {
                if (UspesneKupovine.ContainsKey(d))
                {
                    stanje += UspesneKupovine[d];
                }
                if (stanje > 0)
                {
                    stanje--;
                    pojedene++;
                }
            }
            Console.WriteLine(pojedene);

            for (int u = 1; u < Q; u++)
            {
                for (ulong d = Upiti[u-1]+1; d <= Upiti[u]; d++)
                {
                    // ako je taj dan kupljena plazma
                    if (UspesneKupovine.ContainsKey(d))
                    {
                        stanje += UspesneKupovine[d];   
                    }
                    if (stanje > 0)
                    {
                        stanje--;
                        pojedene++;
                    }
                }

                Console.WriteLine(pojedene);
            }


        }
    }
}