using System;
string[] vrednosti = Console.ReadLine().Split();
int N = int.Parse(vrednosti[0]);
int Q = int.Parse(vrednosti[1]);
long[] dani = new long[N];
long[] paketi = new long[N];
for (int i = 0; i < N; i++)
{
    string[] unos = Console.ReadLine().Split();
    dani[i] = long.Parse(unos[0]);
    paketi[i] = long.Parse(unos[1]);
}
long[] pitanja = new long[Q];
for (int i = 0; i < Q; i++)
{
    pitanja[i] = long.Parse(Console.ReadLine());
}
long pojedeno = 0, ukupno = 0, brojac = 0, bonus = 0,temp=0,temp1=0;
foreach (long i in pitanja)
{
    foreach (int j in dani)
    {
        if (j > i)
            break;
        else
        {
            if (j > paketi[brojac]+bonus)
            {
                temp += paketi[brojac]+bonus;
                brojac++;
                bonus = 0;
            }
            else
            {
                if (j + pojedeno >= i)
                {
                    temp = i-pojedeno;
                    break;
                }
                else
                {
                    temp += j;
                    bonus = bonus + paketi[brojac] - j;
                    brojac++;
                }

            }
        }
        pojedeno += temp;
        brojac = 0;
        temp1 = temp;
        temp = 0;
    }
    if (bonus > 0 && i > dani[dani.Length-1] + temp1)
    {
        if (bonus > i)
            pojedeno += i;
        else
            pojedeno += bonus;
    }
    Console.WriteLine(pojedeno);
    pojedeno = 0;
    bonus = 0;
}