#include <iostream>
#include<bits/stdc++.h>
using namespace std;

int main() {
    int N,X,K;
    cin>>N>>X>>K;

    vector<int> S(K);
    for(int i=0;i<K;++i){
        cin>>S[i];
    }

    int M;
    cin>>M;
    vector<pair<int,int>> records(M);
    for(int i=0;i<M;++i){
        cin>>records[i].second>>records[i].first;
    }
    sort(records.begin(),records.end());
    vector<int> res(K);
    unordered_map<int,int> freq;
    int current_unique=0;
    int left=0;
    int right=0;
    vector<pair<int,int>> queries(K);
    for(int i=0;i<K;i++){
        queries[i]={S[i],i};
    }
   // cout<<-1<<endl;
    sort(queries.begin(),queries.end());
    int ans[100005]={0},tip[100005]={0};
    for(int i=0;i<K;i++){
        
        int l=queries[i].first;
        int r=l+X-1;
        if(i>0) ans[queries[i].second]=ans[queries[i-1].second];
        //  cout<<-2<<" "<<l<<" "<<r<<endl;
         
        while(records[right].first<=r&&right<M){
            if(tip[records[right].second]==0)
            ans[queries[i].second]++;
            tip[records[right].second]++;
            right++;
        }
        while(records[left].first<l&&left<M){
            tip[records[left].second]--;
            if(tip[records[left].second]==0)
            ans[queries[i].second]--;
            left++;
        }
      //  cout<<ans[queries[i].second]<<" "<<queries[i].second<<" "<<left<<" "<<right<<endl;
       // for(int j=0;j<N;j++)
        //cout<<tip[j]; cout<<endl;
    }
    for(int i=0;i<K;i++){
        cout<<ans[i]<<" ";
    }
}
// 64 位输出请用 printf("%lld")