#include <bits/stdc++.h>
using namespace std;
inline void ss(int &n) {
  n = 0;
  char c = getchar();
  while (c < 48 || c > 57) c = getchar();
  while (c >= 48 && c <= 57) n = (n << 1) + (n << 3) + c - 48, c = getchar();
}
const double E = 2.7182818284590452353602874713527;
int n, e, k, X0, Y0, x[105], y[105];
double mem[105][105], r;
int vis[105][105], id;
double get(int p) {
  double D = (X0 - x[p]) * (X0 - x[p]) + (Y0 - y[p]) * (Y0 - y[p]), R = r * r;
  if (D <= R) return 1;
  return pow(E, 1.0 - D / R);
}
double dp(int p, int taken) {
  if (p == n) return taken >= k;
  double &m = mem[p][taken];
  if (vis[p][taken] == id) return m;
  vis[p][taken] = id;
  m = 0;
  double c = get(p);
  m += (1 - c) * dp(p + 1, taken);
  m += dp(p + 1, taken + 1) * c;
  return m;
}
int main() {
  scanf("%d", &n);
  scanf("%d", &k);
  scanf("%d", &e);
  scanf("%d", &X0);
  scanf("%d", &Y0);
  double cmp = (1000 - e) / 1000.0;
  for (int i = 0; i < n; i++) {
    scanf("%d", &x[i]);
    scanf("%d", &y[i]);
  }
  double lo = 0, hi = 5000;
  while (fabs(lo - hi) > 1e-7) {
    r = (lo + hi) / 2;
    id++;
    double x = dp(0, 0);
    if (x >= cmp)
      hi = r;
    else
      lo = r;
  }
  printf("%.7lf\n", r);
}
