#include <bits/stdc++.h>
using namespace std;
int n, k;
double p, X, Y, ans;
double a[110], f[110][110], c[110];
double cal(double D, double R) {
  if (D <= R)
    return 1.0;
  else
    return exp(1.0 - D * D / (R * R));
}
bool check(double mid) {
  double sum = 0;
  memset(f, 0, sizeof(f));
  f[0][0] = 1;
  for (int i = 1; i <= n; i++) c[i] = 1 - cal(a[i], mid);
  for (int i = 1; i <= n; i++) {
    f[i][0] = f[i - 1][0] * c[i];
    for (int j = 1; j <= i; j++)
      f[i][j] = f[i - 1][j] * c[i] + f[i - 1][j - 1] * (1 - c[i]);
  }
  for (int i = 0; i < k; i++) sum += f[n][i];
  return sum <= p / 1000;
}
int main() {
  double x, y, l = 0, r = 0, mid;
  cin >> n >> k >> p >> X >> Y;
  for (int i = 1; i <= n; i++) {
    cin >> x >> y;
    a[i] = sqrt(pow(x - X, 2) + pow(y - Y, 2));
    r = max(r, a[i]);
  }
  while (l + (1e-10) <= r) {
    mid = (l + r) / 2;
    if (check(mid))
      ans = mid, r = mid;
    else
      l = mid;
  }
  printf("%.10lf", ans);
  return 0;
}
