#include <bits/stdc++.h>
using namespace std;
int main() {
int K,N,S,T;
cin >> K >> N >> S >> T;
vector<complex<int>> points(N);
for (auto& p : points) {
int x,y;
cin >> x >> y;
p = {x,y};
}
double minR = DBL_MAX;
for (int i = 0; i < N; i++) {
vector pointsSpecial = points;
ranges::sort(pointsSpecial,[&points,i](auto f, auto s)->bool {
return abs(f-points[i]) < abs(s-points[i]);
});
const complex<double> mid = accumulate(pointsSpecial.begin(),pointsSpecial.begin()+K,complex<double>{},[](complex<double> f,complex<int> s)->complex<double> {
return f + complex<double>(s.real(),s.imag());
}) / complex<double>{static_cast<double>(K),0};
const double radius = accumulate(pointsSpecial.begin(),pointsSpecial.begin()+K,0.,[mid](double r, complex<int> s) -> double {
return max(r,abs(complex<double>(s.real(),s.imag())-mid));
});
minR = min(minR,radius);
}
cout << setprecision(12) << minR*T;
}