#include <stdio.h>

long long int min(long long int a, long long int b)
{
	return (a<b ? a:b);
}

void prefiks(long long int duzina, long long int in[], long long int out[])
{
    out[0] = in[0];
    for(int i = 1; i<duzina; i++) out[i] = in[i] + out[i-1];
    return;
}

int main()
{
	long long int n, q;

	scanf("%lld%lld", &n, &q);

	long long int d[n];
	long long int p[n];

	for(long long int i = 0; i<n; i++)
	{
		scanf("%lld%lld", &d[i], &p[i]);
	}

    long long int pPref[n];
    
    prefiks(n, p, pPref);

	long long int k[q];

	for(long long int i = 0; i<q; i++) scanf("%lld", &k[i]);

	long long int izmedju[n];

	izmedju[0] = 0;
	izmedju[1] = min(d[1]-d[0], p[0]);
	for(long long int i = 2; i<n; i++) izmedju[i] = min(d[i]-d[i-1], p[i-2]-izmedju[i-1]+p[i-1]);
	
	long long int izmedjuPref[n];
	prefiks(n, izmedju, izmedjuPref);
	
	/*
	for(long long int i = 0; i<n; i++) printf("%lld ", pPref[i]);
	printf("\n");
	*/
	
	long long int r = 0;

	for(long long int i = 0; i<q; i++)
	{
	    if(k[i]<d[0]) printf("0\n");
	    else{
	        while(d[r+1] < k[i] && r+1<n) r++;
	        
	        printf("%lld\n", min(k[i]+1-d[r]+izmedjuPref[r], pPref[r]));
	    }
	}

	}