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

namespace ConsoleApp2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            string[] s = Console.ReadLine().Split();
            int n = int.Parse(s[0]);
            int q = int.Parse(s[1]);

            long[] adn = new long[n];
            long[] apn = new long[n];
            for (int i = 0; i < n; i++)
            {
                string[] line = Console.ReadLine().Split();
                adn[i] = long.Parse(line[0]);
                apn[i] = long.Parse(line[1]);
            }
            long[] aq = new long[q];
            for (int i = 0; i < q; i++)
            {
                aq[i] = long.Parse(Console.ReadLine());
            }

            List<long> ukupnoD = new List<long>();
            List<long> ukupnoP = new List<long>();
            long pojedenoUkupno = 0;
            long zaliheOstalo = 0;
            long poslednjiD = 0;

            for (int i = 0; i < n; i++)
            {
                long d = adn[i];
                long p = apn[i];

                if (zaliheOstalo > 0)
                {
                    long pojedeno = Math.Min(zaliheOstalo, d - poslednjiD);
                    pojedenoUkupno += pojedeno;
                    zaliheOstalo -= pojedeno;
                }
                zaliheOstalo += p;
                poslednjiD = d;
                ukupnoD.Add(d);
                ukupnoP.Add(pojedenoUkupno);
            }

            long[] rez = new long[q];
            for (int i = 0; i < q; i++)
            {
                long k = aq[i];

                if (k < ukupnoD[0])
                {
                    rez[i] = 0;
                    continue;
                }
                int l = 0, d = ukupnoD.Count - 1;
                while (l < d)
                {
                    int sred = (l + d + 1) / 2;
                    if (ukupnoD[sred] <= k)
                    {
                        l = sred;
                    }
                    else
                    {
                        d = sred - 1;
                    }
                }

                long ukupno = ukupnoP[l];
                long ostaloD = k - ukupnoD[l] + 1;

                if (l == ukupnoD.Count - 1)
                {
                    ostaloD = Math.Min(ostaloD, zaliheOstalo);
                }

                ukupno += ostaloD;
                rez[i] = ukupno;
            }

            foreach (long r in rez)
            {
                Console.WriteLine(r);
            }
        }
    }
}