using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        string[] prviRed = Console.ReadLine().Split();
        int N = int.Parse(prviRed[0]);
        int Q = int.Parse(prviRed[1]);

        long[] dani = new long[N];
        long[] kolicine = new long[N];

        for (int i = 0; i < N; i++)
        {
            string[] linija = Console.ReadLine().Split();
            dani[i] = long.Parse(linija[0]);
            kolicine[i] = long.Parse(linija[1]);
        }

        List<long> upiti = new List<long>();
        for (int i = 0; i < Q; i++)
        {
            upiti.Add(long.Parse(Console.ReadLine()));
        }

        List<long> ukupnaKolicina = new List<long>();
        long trenutnaSuma = 0;

        for (int i = 0; i < N; i++)
        {
            trenutnaSuma += kolicine[i];
            ukupnaKolicina.Add(trenutnaSuma);
        }

        List<long> rezultati = new List<long>();
        foreach (long dan in upiti)
        {
            int indeks = -1;
            for (int i = 0; i < N; i++)
            {
                if (dani[i] <= dan)
                {
                    indeks = i;
                }
                else
                {
                    break;
                }
            }

            if (indeks == -1)
            {
                rezultati.Add(0);
            }
            else
            {
                long pojedenih = ukupnaKolicina[indeks];
                long preostalo = (dani[indeks] + kolicine[indeks] - 1) - dan;

                if (preostalo > 0)
                {
                    pojedenih -= preostalo;
                }

                rezultati.Add(pojedenih);
            }
        }

        foreach (long rezultat in rezultati)
        {
            Console.WriteLine(rezultat);
        }
    }
}