#include <stdio.h>

typedef struct {
    long long d, p;
} kupljeno;

int main() {
    int N, Q;
    scanf("%d %d", &N, &Q);


    kupljeno a[N];
    for (int i = 0; i < N; i++) {
        scanf("%lld %lld", &a[i].d, &a[i].p);
    }


    long long k[Q];
    for (int j = 0; j < Q; j++) {
        scanf("%lld", &k[j]);
    }


    for (int j = 0; j < Q; j++) {
        long long stop = k[j];
        long long s = 0;
        long long stek = 0;

        for (int i = 0; i < N; i++) {
            if (a[i].d > stop) break; 
            long long sld= (i + 1 < N) ? a[i + 1].d : stop + 1; 
            long long dkk = (sld > stop ? stop + 1 : sld) - a[i].d;

            if (dkk >= a[i].p) {
                s += a[i].p; 
            } else {
                s += dkk; 
            }
        }

        
        for (int i = 0; i < N; i++) {
            stek += a[i].p;
        }

        if (s > stek) {
            s = stek;
        }

        printf("%lld\n", s);
    }

    return 0;
}