#include <iostream>
#include <vector>
using namespace std;
int main()
{
    int N,Q, brp=0, t=0;
    cin>>N>>Q;
    if(N<1 or N>300000)
        return 0;
    int d[N];
    int p[N];
    int k[Q];
    for(int i=0;i<N;i++){
        cin>>d[i]>>p[i];
        if(p[i]<1 or p[i]>1000000000 or d[i]<1 or d[i]>1000000000)
            return 0;}
        
    for(int i=0;i<N-1;i++)
        if(d[i]>d[i+1])
            return 0;
            
    for(int j=0;j<Q;j++){
        cin>>k[j];
        if(k[j]<1 or k[j]>1000000000)
            return 0;
    }
    
    for(int j=0;j<Q-1;j++)
        if(k[j]>k[j+1])
            return 0;
    
    for(int j=0;j<Q;j++){
        int x=k[j];
        vector <int> a(x);
        int i=0;
        for(int l=0;l<x;l++){
            a[l]=brp;
            if(l+1==d[i]){
                brp+=p[i++];
                t++;
                a[l]=brp;
                brp--;}
            else
                if((brp>=1 and (l+2)!=d[i-1])){
                    t++;
                    brp--;}
        }
        cout<<t<<" "<<endl;
        t=0;
        i=0;
        brp=0;
    }
    return 0;
}