using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Plazma4._0
{
    class Program
    {
        static void Main()
        {

            string[] NQ = Console.ReadLine().Split();
            int N = int.Parse(NQ[0]);
            int Q = int.Parse(NQ[1]);

            List<(long dan, long paketi)> kupovine = new List<(long dan, long paketi)>();
            for (long i = 0; i < N; i++)
            {
                string[] kupovinaLinija = Console.ReadLine().Split();
                long d = long.Parse(kupovinaLinija[0]);
                long p = long.Parse(kupovinaLinija[1]);
                kupovine.Add((d, p));
            }


            List<(long k, long index)> pitanja = new List<(long k, long index)>();
            for (long i = 0; i < Q; i++)
            {
                long kj = long.Parse(Console.ReadLine());
                pitanja.Add((kj, i));
            }


            kupovine = kupovine.OrderBy(x => x.dan).ToList();

            pitanja = pitanja.OrderBy(x => x.k).ToList();


            long[] odgovori = new long[Q];

            long zalihe = 0;
            int ukupnoPojedeno = 0;
            int idxKupovine = 0;
            int dan = 1;


            foreach (var (k, idxPitanja) in pitanja)
            {

                while (dan <= k)
                {
                    if (idxKupovine < N && kupovine[idxKupovine].dan == dan)
                    {
                        zalihe += kupovine[idxKupovine].paketi;
                        idxKupovine++;
                    }

                    if (zalihe > 0)
                    {
                        zalihe--;
                        ukupnoPojedeno++;
                    }

                    dan++;
                }


                odgovori[idxPitanja] = ukupnoPojedeno;
            }

            foreach (int odgovor in odgovori)
            {
                Console.WriteLine(odgovor);
            }

        }
    }

}