#include<bits/stdc++.h>
using namespace std;
int ax[105],ay[105],bx[105],by[105],b[105],n,m,k,minn=99999999,j,cnt;
double jl;
bool e;
void dfs(int qb){
if(qb>m){minn=min(minn,cnt);return;}
if(minn==1)return;
if(cnt>=minn)return;
for(int i=1;i<=n;i++){
if(b[i]==0){
jl=sqrt((abs(bx[i]-ax[qb]))*(abs(bx[i]-ax[qb]))+(abs(by[i]-ay[qb]))*(abs(by[i]-ay[qb])));
if(jl<=k){
e=0;
for(j=qb+1;j<=m;j++){
jl=sqrt((abs(bx[i]-ax[j]))*(abs(bx[i]-ax[j]))+(abs(by[i]-ay[j]))*(abs(by[i]-ay[j])));
if(jl>k){
if(e==0)j++;
break;
}
e=1;
}
b[i]=1;
cnt++;
dfs(j);
cnt--;
b[i]=0;
}
}
}
}
int main(){
cin>>n>>m>>k;
for(int i=1;i<=m;i++)cin>>ax[i]>>ay[i];
for(int i=1;i<=n;i++)cin>>bx[i]>>by[i];
dfs(1);
cout<<minn;
return 0;
}
真不知道你们是怎么做出来的。