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

namespace takm
{
    internal class Program
    {
        static void Main()
        {
            string[] s = Console.ReadLine().Split();
            int n = int.Parse(s[0]);
            int q = int.Parse(s[1]);
            long[] d = new long[n];
            long[] p = new long[n];
            for (int i = 0; i < n; i++)
            {
                s = Console.ReadLine().Split();
                d[i] = long.Parse(s[0]);
                p[i] = long.Parse(s[1]);
            }
            var upiti = new (long k, int i)[q];
            for (int i = 0; i < q; i++) upiti[i] = (long.Parse(Console.ReadLine()), i);
            long[] pref = new long[n];
            pref[0] = p[0];
            for (int i = 1; i < n; i++)
            {
                pref[i] = pref[i - 1] + p[i];
            }
            long[] rez = new long[q];
            long ukupno = 0;
            long poslednji = 0;
            int x = 0;
            foreach (var (k, i) in upiti)
            {
                while (x < n && d[x] <= k)
                {
                    ukupno += p[x];

                    long t = d[x] - poslednji - 1;
                    ukupno = Math.Max(0, ukupno - t);

                    poslednji = d[x];
                    x++;
                }
                if (poslednji < k)
                {
                    long r = k - poslednji;
                    ukupno = Math.Max(0, ukupno - r);
                    poslednji = k;
                }
                rez[i] = (x > 0 ? pref[x - 1] : 0) - ukupno;
            }
            foreach (var r in rez)Console.WriteLine(r);
        }
    }
}