#include <iostream>
#include <vector>

using namespace std;

int main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n,q;
cin >> n >> q;
int p=0;
vector<unsigned long long int> prvi;
vector<unsigned long long int> zadnji;
vector<unsigned long long int> zbir;
for(int i=0;i<n;i++){
    unsigned long long int p1,p2;
    cin >> p1 >> p2;
    if(p==0){
        prvi.push_back(p1);
        zadnji.push_back(p2+p1-1);
        zbir.push_back(0);
        p++;
    }
    else if(p1>=prvi[p-1] && p1<=zadnji[p-1])zadnji[p-1]+=p2;
    else{
        prvi.push_back(p1);
        zadnji.push_back(p2+p1-1);
        int O=zbir[p-1]+zadnji[p-1]-prvi[p-1]+1;
        zbir.push_back(O);
        p++;
    }
}
int P=0;
/*
for(auto i:prvi) cout << i << " ";
cout << "\n";
for(auto i:zadnji) cout << i << " ";
cout << "\n";
for(auto i:zbir) cout << i << " ";
cout << "\n";
*/
for(int k=0;k<q;k++){
    unsigned long long int Q;
    cin >> Q;
    if(Q>=zadnji[p-1]){
        cout << zbir[p-1]<< " " << zadnji[p-1] << " " << prvi[p-1] << " " << p << "\n";
        cout << zbir[p-1]+zadnji[p-1]-prvi[p-1]+1 << "\n";
        continue;
    }
    else if(Q<prvi[0]){
        cout << 0 << "\n";
        continue;
    }
    for(int i=P;i<p;i++){
        if(Q<=zadnji[i] && Q>=prvi[i]){
            P=i;
            cout << zbir[i]+Q-prvi[i]+1 << "\n";
            break;
        }
        else if(Q>zadnji[i] && Q<prvi[i+1]){
            P=i;
            cout << zbir[i+1] << "\n";
            break;
        }
    }
}
cout << "\n";
return 0;
}