#include <bits/stdc++.h>
using namespace std;
int main() {
int K,N,S,T;
cin >> K >> N >> S >> T;
vector<complex<double>> points(N);
for (auto& p : points) {
double 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]);
});
int bestI= 0, bestJ=0;
double bestDist = 0;
for (int i = 0; i < K; i++) {
for (int j = 0; j < i; j++) {
if (double dist = abs(pointsSpecial[i]-pointsSpecial[j]); dist >bestDist) {
bestDist = dist;
bestI =i;
bestJ = j;
}
}
}
const complex mid = (pointsSpecial[bestI]+ pointsSpecial[bestJ])/complex{2.,0.};
const double radius = accumulate(pointsSpecial.begin(),pointsSpecial.begin()+K,0.,[mid](double r, complex<double> s) -> double {
return max(r,abs(s-mid));
});
minR = min(minR,radius);
}
cout << setprecision(12) << minR*T;
}