#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <fstream>
#include <unordered_map>
#define ll long long
using namespace std;
//Mind a harom magamnak kiszamitott tomb egy ciklusba
//Magyarazattal
int main()
{
//ifstream cin;
//cin.open("be2.txt");
ios_base::sync_with_stdio(false);
cin.tie(0);
//Hiba=>Mindenhol long long
ll szendb, caedb;
cin >> szendb >> caedb;
//Beolvasas, a szenatorok parokba lesznek beolvasva.
vector<pair<ll, ll>> szenator(szendb);
for (ll i = 0; i < szendb; i++)
{
cin >> szenator[i].first >> szenator[i].second;
}
vector<ll> caesar(caedb);
for (ll i = 0; i < caedb; i++)
{
cin >> caesar[i];
}
//A szortirozas az elso par szerint szortiroz.
//Azzal mindenkepp max pontot erunk el, ha a leggyengebbek lesznek elol.
sort(szenator.begin(), szenator.end());
vector<ll> hozott_ero(szendb);//az ero, amit az eddig legyozott gladiatorokbol szerzunk.
ll sum = 0;
vector<ll> kello_ero(szendb);//Az ero ami az elejetol kell, hogy legyozzuk
//Otlet: Ha a kello_ero={5, 2, 8}
//akkor a 2-esen senki se fog elbukni. Mert mar atment az 5-oson.
vector<pair<ll, ll>> akadalyok;
ll max = 0;
for (ll i = 0; i < szendb; i++)
{
//Messy a ciklus, mert egybevontam harmat.
//Hozott ero kiszamitasa
hozott_ero[i] = sum;
//ebbol a kello ero kiszamitasa
kello_ero[i] = szenator[i].first - hozott_ero[i];
//hozott eronek a sum szamolasa
sum += szenator[i].second;
if (kello_ero[i] > max) {//Ha uj legnagyobb "akadaly" van
max = kello_ero[i];
akadalyok.push_back({ kello_ero[i], i });//lementem indexxel egyutt
}
}
//A vegen elkapjuk a legerosebbet egy nagyon nagy szammal
//long long limit 9223372036854775807
akadalyok.push_back({ 9223372036854775807, szendb });
//akadalyok.push_back({ 10000000000000000000, szendb });
//^ez hibat dob, de VS nem jelzi ki hogy nagyobb, mint az ll limit^
//^ de eggyel tobb 0-val kijelzi ^
//A lementes egyaltalan nem segitett
unordered_map<ll, ll> megoldas;
for (ll glad : caesar) {
if (megoldas.find(glad) != megoldas.end()) {
//Ha le van mentve, kiirom
cout << megoldas[glad] << " ";
}
else {//Ha nincs lementve
for (auto elem : akadalyok) {//megkeresem az elso akadalyt, ami megoli
if (elem.first > glad) {
megoldas.emplace(glad, elem.second);//Es lementem
//Majd kiirom
cout << elem.second << " ";
break;
}
}
}
}
}