#include <bits/stdc++.h>
using namespace std;
double dp[128][128];
int x[128], y[128];
int N, K, x_0, y_0;
double eps;
double dist(double x1, double y1) {
  return sqrt((x_0 - x1) * (x_0 - x1) + (y_0 - y1) * (y_0 - y1));
}
double hit(double R, double D) {
  return (D <= R) ? 1. : exp(1 - D * D / R / R);
}
double P(double R) {
  fill(*dp, *dp + 128 * 128, 0.);
  dp[0][1] = hit(R, dist(x[0], y[0]));
  dp[0][0] = 1 - dp[0][1];
  for (int i = 1; i < N; i++)
    for (int j = 0; j <= N; j++) {
      double ph = hit(R, dist(x[i], y[i]));
      dp[i][j] += (1 - ph) * dp[i - 1][j];
      if (j >= 1) dp[i][j] += ph * dp[i - 1][j - 1];
    }
  double ret = 0.;
  for (int j = 0; j < K; j++) ret += dp[N - 1][j];
  return ret;
}
int main() {
  cin >> N >> K >> eps >> x_0 >> y_0;
  eps /= 1000.;
  for (int i = 0; i < N; i++) cin >> x[i] >> y[i];
  double lo = 0., hi = 1000000.;
  for (int x = 0; x < 50; x++) {
    double ave = (lo + hi) / 2.;
    if (P(ave) <= eps)
      hi = ave;
    else
      lo = ave;
  }
  cout << setprecision(10) << fixed << hi << endl;
}
