#include<bits/stdc++.h>
using namespace std;
int main(){
	#define int long long
	int n,q;
	cin>>n>>q;
	int d[n];
	int p[n];
	int ukupno = 0;
	for(int i=0;i<n;i++){
		cin>>d[i]>>p[i];
		ukupno+=p[i];
	}
	map<int, int> m;
	int pojedeno[n];
	m[d[0]] = p[0];
	ukupno-=m[d[0]];
	for(int i=1;i<n;i++){
		int izmedju = d[i]-d[i-1];
		int ostalo = max((long long)0, m[d[i-1]]-izmedju);
		m[d[i]] = p[i]+ostalo;
		pojedeno[i] = min(m[d[i-1]], d[i]-d[i-1]);
		//cerr<<pojedeno[i]<<endl;
		ukupno-=m[d[i]];
		//cerr<<m[d[i]]<<endl;
	}
	int pref[n+1];
	pref[0] = 0;
	for(int i=1;i<=n;i++){
		pref[i] = pref[i-1]+pojedeno[i-1];
	}
	while(q--){
		int k;
		cin>>k;
		int res = 0;
		if(k<d[0]){
			cout<<0<<endl;
			continue;
		}
		for(int i=0;i<n-1;i++){
			if(d[i+1]<=k) res+=pojedeno[i+1];
			//else if(i==n-1 && k>=d[i]) res+=min(max((long long) 0,k-d[i]+1), m[d[i]]);
			//cerr<<res<<" ";
			else{
				res+=min(m[d[i]], k-d[i]+1);
				break;
			}
		}
		if(k>=d[n-1]){
			res+=min(m[d[n-1]], k-d[n-1]+1);
		}
		//if(k>=d[n-1]) res+=min(k-d[n-1], ukupno);
		cout<<res<<endl;
	}
}