#include <iostream>
using namespace std;
#define N (2 * (int)1e5)
bool accepts(int applicant, int apartment, int k){
if(applicant - k <= apartment && applicant + k >= apartment)
return true;
return false;
}
int main(){
int n, m, k;
cin >> n >> m >> k;
int a[n], b[m];
for(int i = 0; i < n; i++){
cin >> a[i];
}
for(int j = 0; j < n; j++){
cin >> b[j];
}
sort(a, a + n);
sort(b, b + m);
int la = 0, lb = 0, ra = n - 1, rb = m - 1;
int result = 0;
while (lb < rb && lb <= la){
if(accepts(lb, la, k)){
lb++;
result++;
}
else la++;
if(accepts(rb, ra, k)){
rb--;
result++;
}
else rb--;
}
cout << result << endl;
return 0;
}