#include<stdio.h>

void BubbleSort(int n, long long d[], long long p[]) {
    int i, j;
    long long td, tp;
    for (i = n - 1; i >= 0; i--)
        for (j = 0; j < i; j++)
            if (d[j] > d[j + 1]) {
                td = d[j];
                tp = p[j];
                d[j] = d[j + 1];
                p[j] = p[j + 1];
                d[j + 1] = td;
                p[j + 1] = tp;
            }
}


long long Pojedeno(long long d[], long long p[], int N, long long k){
    long long u = 0, pojedeno = 0, j = 0;
    for (long long i = 1; i <= k; i++) {
        while (j < N && d[j] == i) {
            u += p[j];
            j++;
        }
        if (u > 0) {
            u--;
            pojedeno++;
        }
    }
    return pojedeno;
}

int main() {
    int N,Q,i,j;
    long long d[30], p[30], k[30];



    scanf("%d%d", &N, &Q);



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

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

    BubbleSort(N,d,p);

    for (i = 0; i < Q; i++) {
        printf("%lld\n", Pojedeno(d, p, N, k[i]));
    }
}