#include <iostream>
#include <vector>
#include <utility>
#include <algorithm>
using namespace std;
bool compare(const pair<int, char> &p1, const pair<int, char> &p2)
{
return p1.first < p2.first;
}
vector<pair<int, int>> func(const vector<pair<int, char>> &lists)
{
int seg = 0, n = lists.size();
vector<pair<int, int>> res;
for (int i = 0; i < n; ++i) {
if (lists[i].second == 'l') ++seg;
else if (lists[i].second == 'r') --seg;
else res.push_back(make_pair(lists[i].first, seg));
}
return res;
}
int binarySearch(const vector<pair<int, int>> &arr, int left, int right, int key)
{
if (left > right) return -1;
else if (left == right) return arr[left].first == key ? left : -1;
else {
int mid = (left + right) / 2;
if (arr[mid].first == key) return mid;
else if (key < arr[mid].first) return binarySearch(arr, left, mid - 1, key);
else return binarySearch(arr, mid + 1, right, key);
}
}
int main()
{
int s, p, a, b, pos;
cin >> s >> p;
vector<pair<int, char>> lists;
vector<int> points(p);
for (int i = 0; i < s; ++i) {
cin >> a >> b;
lists.push_back(make_pair(a, 'l'));
lists.push_back(make_pair(b, 'r'));
}
for (int i = 0; i < p; ++i) {
cin >> points[i];
lists.push_back(make_pair(points[i], 'p'));
}
sort(lists.begin(), lists.end(), compare);
vector<pair<int, int>> res = func(lists);
for (int i = 0; i < p; ++i) {
pos = binarySearch(res, 0, res.size() - 1, points[i]);
cout << res[pos].second << " ";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8dXRpbGl0eT4KI2luY2x1ZGUgPGFsZ29yaXRobT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIGNvbXBhcmUoY29uc3QgcGFpcjxpbnQsIGNoYXI+ICZwMSwgY29uc3QgcGFpcjxpbnQsIGNoYXI+ICZwMikKewoJcmV0dXJuIHAxLmZpcnN0IDwgcDIuZmlyc3Q7Cn0KCnZlY3RvcjxwYWlyPGludCwgaW50Pj4gZnVuYyhjb25zdCB2ZWN0b3I8cGFpcjxpbnQsIGNoYXI+PiAmbGlzdHMpCnsKCWludCBzZWcgPSAwLCBuID0gbGlzdHMuc2l6ZSgpOwoJdmVjdG9yPHBhaXI8aW50LCBpbnQ+PiByZXM7Cglmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewoJCWlmIChsaXN0c1tpXS5zZWNvbmQgPT0gJ2wnKSArK3NlZzsKCQllbHNlIGlmIChsaXN0c1tpXS5zZWNvbmQgPT0gJ3InKSAtLXNlZzsKCQllbHNlIHJlcy5wdXNoX2JhY2sobWFrZV9wYWlyKGxpc3RzW2ldLmZpcnN0LCBzZWcpKTsKCX0KCXJldHVybiByZXM7Cn0KCmludCBiaW5hcnlTZWFyY2goY29uc3QgdmVjdG9yPHBhaXI8aW50LCBpbnQ+PiAmYXJyLCBpbnQgbGVmdCwgaW50IHJpZ2h0LCBpbnQga2V5KQp7CglpZiAobGVmdCA+IHJpZ2h0KSByZXR1cm4gLTE7CgllbHNlIGlmIChsZWZ0ID09IHJpZ2h0KSByZXR1cm4gYXJyW2xlZnRdLmZpcnN0ID09IGtleSA/IGxlZnQgOiAtMTsKCWVsc2UgewoJCWludCBtaWQgPSAobGVmdCArIHJpZ2h0KSAvIDI7CgkJaWYgKGFyclttaWRdLmZpcnN0ID09IGtleSkgcmV0dXJuIG1pZDsKCQllbHNlIGlmIChrZXkgPCBhcnJbbWlkXS5maXJzdCkgcmV0dXJuIGJpbmFyeVNlYXJjaChhcnIsIGxlZnQsIG1pZCAtIDEsIGtleSk7CgkJZWxzZSByZXR1cm4gYmluYXJ5U2VhcmNoKGFyciwgbWlkICsgMSwgcmlnaHQsIGtleSk7Cgl9Cn0KCmludCBtYWluKCkKewoJaW50IHMsIHAsIGEsIGIsIHBvczsKCWNpbiA+PiBzID4+IHA7Cgl2ZWN0b3I8cGFpcjxpbnQsIGNoYXI+PiBsaXN0czsKCXZlY3RvcjxpbnQ+IHBvaW50cyhwKTsKCWZvciAoaW50IGkgPSAwOyBpIDwgczsgKytpKSB7CgkJY2luID4+IGEgPj4gYjsKCQlsaXN0cy5wdXNoX2JhY2sobWFrZV9wYWlyKGEsICdsJykpOwoJCWxpc3RzLnB1c2hfYmFjayhtYWtlX3BhaXIoYiwgJ3InKSk7Cgl9Cglmb3IgKGludCBpID0gMDsgaSA8IHA7ICsraSkgewoJCWNpbiA+PiBwb2ludHNbaV07CgkJbGlzdHMucHVzaF9iYWNrKG1ha2VfcGFpcihwb2ludHNbaV0sICdwJykpOwoJfQoJc29ydChsaXN0cy5iZWdpbigpLCBsaXN0cy5lbmQoKSwgY29tcGFyZSk7Cgl2ZWN0b3I8cGFpcjxpbnQsIGludD4+IHJlcyA9IGZ1bmMobGlzdHMpOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBwOyArK2kpIHsKCQlwb3MgPSBiaW5hcnlTZWFyY2gocmVzLCAwLCByZXMuc2l6ZSgpIC0gMSwgcG9pbnRzW2ldKTsKCQljb3V0IDw8IHJlc1twb3NdLnNlY29uZCA8PCAiICI7Cgl9CglyZXR1cm4gMDsKfQ==