#include <bits/stdc++.h>
int k, n;
double eps;
double dp[110][110];
double x[110], y[110], xx, yy;
const double ee = 2.7182818284590452353602874713527;
bool ok(double rr) {
  memset(dp, 0, sizeof(dp));
  dp[0][0] = 1;
  for (int i = 1; i <= n; i++) {
    double prob;
    double dis = sqrt((x[i - 1] - xx) * (x[i - 1] - xx) +
                      (y[i - 1] - yy) * (y[i - 1] - yy));
    if (dis < rr + 1e-10)
      prob = 1;
    else
      prob = pow(ee, (1.0 - dis * dis / rr / rr));
    for (int j = 0; j <= n; j++) {
      dp[i][j] += dp[i - 1][j] * (1 - prob);
      if (j != 0) dp[i][j] += dp[i - 1][j - 1] * prob;
    }
  }
  double anss = 0;
  for (int i = 0; i < k; i++) anss += dp[n][i];
  anss *= 1000;
  if (anss < eps - 1e-10) return true;
  return false;
}
int main() {
  while (scanf("%d", &n) == 1) {
    scanf("%d%lf", &k, &eps);
    scanf("%lf%lf", &xx, &yy);
    for (int i = 0; i < n; i++) scanf("%lf%lf", &x[i], &y[i]);
    double left = 0, right = 50000.0;
    for (int i = 0; i < 50; i++) {
      double mid = (left + right) / 2.0;
      if (ok(mid))
        right = mid;
      else
        left = mid;
    }
    printf("%.15f\n", left);
  }
  return 0;
}
