#include <bits/stdc++.h>
using namespace std;
long long d[300005];
long long p[300005];
long long q[300005];
unsigned long long prefiks[300005];
int n;
int binarna(int trg) {
    int levo = 0, desno = n - 1;
    int rez = -1; 
    while (levo <= desno) {
        int sredina = levo + (desno - levo) / 2;
        if (d[sredina] < trg) {
            rez = sredina;
            levo = sredina + 1; 
        } else {
            desno = sredina - 1;
        }
    }
    return rez;
}
void solve(){
	int Q;
	cin>>n>>Q;
	for(int i = 0;i<n;i++){
		cin>>d[i]>>p[i];
	}
	prefiks[0] = min(p[0], d[1] - d[0]);
	for(int i = 0;i<Q;i++){
		cin>>q[i];
	}
	for(int i = 1;i<n-1;i++){
		if(prefiks[i-1] + p[i] < prefiks[i] + d[i+1] - d[i]){
			prefiks[i] += prefiks[i-1] + p[i];
		}else{
			prefiks[i] += prefiks[i] + d[i+1] - d[i];
			p[i+1] += p[i] + d[i] - d[i+1];
		}
	}
	prefiks[n-1] = prefiks[n-2] + p[n-2];
	for(int i = 0;i<Q;i++){
		unsigned long long ans;
		int idx = binarna(q[i]);
		if(idx<0){
			ans = 0;
		}else{
			ans = prefiks[idx] + min(q[i]-d[idx], q[i] - p[idx]);
		}
		cout<<ans<<endl;
	}
}
int main() {
    solve();
    return 0;
}