#include <bits/stdc++.h>
using namespace std;
int n, k, e, x, y;
pair<long long, long long> c[200];
double pr[200];
bool was[200][200];
double dp[200][200];
double R(int p, int cnt) {
  if (cnt == 0) return 1;
  if (p == n) return 0;
  if (was[p][cnt]) return dp[p][cnt];
  was[p][cnt] = 1;
  return dp[p][cnt] = R(p + 1, cnt - 1) * pr[p] + R(p + 1, cnt) * (1.0 - pr[p]);
}
inline double dist(int x, int y) { return sqrt(x * x + y * y); }
int main() {
  scanf("%d", &n);
  scanf("%d %d %d %d", &k, &e, &x, &y);
  for (int i = 0; i < (n); ++i) scanf("%d %d", &c[i].first, &c[i].second);
  double l = 0, r = 1e4;
  while ((((r - l) > 0) ? (r - l) : -(r - l)) > 1e-9) {
    double m = (l + r) / 2.0;
    for (int i = 0; i < (n); ++i) {
      double d = dist(c[i].first - x, c[i].second - y);
      if (d <= m)
        pr[i] = 1.0;
      else
        pr[i] = exp(1 - d * d / m / m);
    }
    memset(was, 0, sizeof(was));
    double cur = 1.0 - R(0, k);
    if (cur * 1000 >= e)
      l = m;
    else
      r = m;
  }
  printf("%.10lf\n", r);
  return 0;
}
