#include<bits/stdc++.h>
using namespace std;
long long n, q, pit, poc;
long long prvi, poslednji;
long long d[300050], p[3000050], br;
struct slog
{
   long long ind;
   long long vred;
};
slog niz[600050];

int main()
{
   ios_base::sync_with_stdio(false);
   cin.tie(NULL);

   cin >> n >> q;
   cin >> d[1] >> p[1];

   prvi = d[1]; /// PRE OVOG SU SVE NULE
   br++;
   niz[br].ind = d[1]; /// INDEKS 1. U NIZU JE PRVI DAN KADA JEDE
   niz[br].vred = 1; /// POJEDE 1
   //cout << niz[br].ind << " " << niz[br].vred << endl;

   br++;
   niz[br].ind = niz[br-1].ind + p[1]; /// INDEKS 2. U NIZU JE POSLEDNJI DAN DO KOG JOJ TRAJU KEKSI
   niz[br].vred = p[1]; /// POJEDE P
   //cout << niz[br].ind << " " << niz[br].vred << " 0. GOTOV" << endl << endl;

   for(int i=2; i<=n; i++)
   {
      cin >> d[i] >> p[i];
      //cout << "PROVERA " << d[i] << " > " << niz[br].ind << endl << endl; // DOBRO PROVERAVA
      if(d[i] > niz[br].ind) /// AKO MOZE VALJANO DA SE UBACI
      {
         br++;
         niz[br].ind = d[i]; /// OVAJ INDEKS
         niz[br].vred = niz[br-1].vred + 1; /// PROSLA VREDNOST + 1
         //cout << niz[br].ind << " " << niz[br].vred << endl;

         br++;
         niz[br].ind = niz[br-1].ind + p[i]; /// PROSLI +
         niz[br].vred = niz[br-1].vred + p[i] - 1; /// PROSLA VREDNOST + P[i]
         //cout << niz[br].ind << " " << niz[br].vred << " 1. GOTOV" << endl << endl;
      }

      else /// INACE ON RASTE IDALJE
      {
         br++;
         niz[br].ind = niz[br-1].ind + p[i]; /// PROSLA VREDNOST + NASTAVAK SA JOS P
         niz[br].vred= niz[br-1].vred + p[i]; /// PROSLA VREDNOST + P
         //cout << niz[br].ind << " " << niz[br].vred << " 2. GOTOV" << endl << endl;
      }
   }

   poslednji = niz[br].ind; /// AKO JE VECI OD OVOG OVO JE RESENJE
   poc = 1;

   for(int i=1; i<=q; i++)
   {
      cin >> pit;

      if(pit < prvi or pit > poslednji) /// AKO ISKACE
      { /// NESTO
         if(pit < prvi) /// NECE NISTA JESTI
            cout << "0 \n";


         else /// POJESCE SVE
            cout << niz[br].vred << "\n";
      }

      else
      {
         for(int j = poc; j< br; j++) /// JEDAN PROlAZ KROZ NIZ, STO ZNACI DA JE LINEARNO
         {
            if(niz[j].ind <= pit and niz[j+1].ind >= pit) /// AKO JE OVAJ INDEKS PRE= PITANJA I SLEDECI POSLE= PITANJA
            {
               /// VAMO JE RESENJE
               poc = j;
               if(niz[j].vred == niz[j+1].vred) /// AKO NE RASTE
                  cout << niz[j].vred << "\n";

               else
                  cout << niz[j].vred + (pit - niz[j].ind) << "\n";

               goto ovde;
            }
         }
      }
      ovde:
      i=i;
      /// FUNKC ZA RESENJE
   }
   return 0;
}