var x,y,dx,dy,dui:array[0..2000] of longint;
a:array[0..2000,0..2000] of real;
f:array[0..2000] of real;
b:array[0..2000] of boolean;
n,m,i,j,p,s,d,v,t,w:longint;
sum:real;
function find(x1,x2,y1,y2:longint):real;
begin
find:=sqrt(sqr(x1-x2)+sqr(y1-y2));
end;
procedure bfs;
var i,j,k,now:longint;
dis:real;
begin
t:=0;
while t<w do
begin
inc(t); now:=dui[t];
for i:=1 to n do
begin
dis:=find(x[i],x[now],y[i],y[now]);
if dis<=d then if f[now]+dis<f[i] then
begin
f[i]:=f[now]+dis;
if not b[i] then
begin
inc(w); dui[w]:=i; b[i]:=true;
end;
end;
end;
b[now]:=false;
end;
end;
begin
readln(n,p);
readln(s,d,v);
for i:=1 to p do
readln(dx[i],dy[i]);
for i:=1 to n do
readln(x[i],y[i]);
for i:=1 to n do
for j:=1 to n do
if i<>j then
a[i,j]:=find(x[i],x[j],y[i],y[j]);
w:=0;
for i:=1 to n do f[i]:=maxlongint div 100;
fillchar(b,sizeof(b),0);
for i:=1 to n do
for j:=1 to p do
if find(x[i],dx[j],y[i],dy[j])<=s then
begin
inc(w); dui[w]:=i; f[i]:=0; b[i]:=true; break;
end;
bfs;
sum:=0;
for i:=1 to n do
if f[i]>sum then sum:=f[i];
writeln(round(sum/v));
end.