#include <bits/stdc++.h>
#include <string>
using namespace std;

struct dan{

    long long dan;
    long long plazma;


};


int main() {

    ios::sync_with_stdio(false);
    cin.tie(0);

    int n;
    int q;

    cin>>n;
    cin>>q;

    vector<dan> a(n);

    for(int i=0;i<n;i++){
        long long x;
        long long x1;
        cin>>x;
        cin>>x1;
        a[i].dan=x;
        a[i].plazma=x1;

    }


    int tr=1;
    long long plazma=0;
    long long zaliha=0;

    long long trazen;
    int f=0;

for(int j=0;j<q;j++){

    cin>>trazen;

    if(trazen<a[0].dan){
        cout<<0<<endl;
    }else if(a[1].dan>trazen){
        if(f==0){
            zaliha+=a[0].plazma;
            f=1;
        }
        plazma+=min(zaliha,trazen-a[0].dan)+1;
            zaliha-=min(zaliha,trazen-a[0].dan)+1;
            cout<<plazma<<endl;


    }else{
        if(f==0){
            zaliha+=a[0].plazma;
            f=1;
        }


    for(int i=tr;i<n;i++){
        tr=i+1;
        if(a[i].dan<trazen){
            plazma+=min(zaliha,a[i].dan-a[i-1].dan);
            zaliha-=min(zaliha,a[i].dan-a[i-1].dan);
            if(zaliha==0){
                plazma+=1;
                a[i].plazma-=1;
            }
            zaliha+=a[i].plazma;
        }else if(a[i].dan>trazen){
            plazma+=min(zaliha,trazen-a[i-1].dan);
            zaliha-=min(zaliha,trazen-a[i-1].dan);
            cout<<plazma<<endl;
            break;
        }else if(a[i].dan==trazen){
            plazma+=min(zaliha,a[i].dan-a[i-1].dan);
            zaliha-=min(zaliha,a[i].dan-a[i-1].dan);
            if(zaliha==0){
                plazma+=1;
                a[i].plazma-=1;
            }
            zaliha+=a[i].plazma;
            cout<<plazma<<endl;
            break;
        }
    }
    if(trazen>a[n-1].dan){
        plazma+=min(zaliha,trazen-a[n-1].dan);
        zaliha-=min(zaliha,trazen-a[n-1].dan);
        cout<<plazma<<endl;

    }

    }
}



    return 0;

}