#include <iostream>
#include <vector>
#include <algorithm>
#include <cstdlib>
using namespace std;
vector<int> hunter;
vector<vector<int>> animal;
int hunter_compare(int a, int b){
return a<b;
}
int animal_compare(vector<int> v1, vector<int> v2){
if(v1[0]==v2[0]){
return v1[1] < v2[1];
}
return v1[0] < v2[0];
}
int main(){
int m,n,l;
cin >> m >> n >> l;
hunter.resize(m,0);
animal.resize(n,vector<int>(2,0));
for(int i=0;i<m;i++){
cin >> hunter[i];
}
for(int i=0;i<n;i++){
cin >> animal[i][0] >> animal[i][1];
}
sort(hunter.begin(),hunter.end(),hunter_compare);
sort(animal.begin(),animal.end(),animal_compare);
int cnt = 0;
int index = 0;
for(int i=0;i<n;i++){
int x = animal[i][0];
int y = animal[i][1];
while(index< m && hunter[index] < x){
index++;
}
if(index>0 && abs(hunter[index-1]-x)+y <= l){
cnt++;
continue;
}
if(index < m && abs(hunter[index]-x)+y <= l){
cnt++;
}
}
cout << cnt;
}