#include <bits/stdc++.h>
using namespace std;
const int INF = 2000 * 1000 * 1000;
const long long LINF = 2000000000000000000LL;
const double EPS = 1e-7;
void prepare() {}
double sqr(double a) { return a * a; }
double x[105], y[105];
double dp[105][105];
double e;
int n, k;
double dist(int i, int j) { return sqrt(sqr(x[i] - x[j]) + sqr(y[i] - y[j])); }
bool fun(double r) {
  memset((dp), 0, sizeof(dp));
  dp[0][0] = 1.0;
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j < i; j++) {
      if (dist(i, 0) <= r)
        dp[i][j + 1] += dp[i - 1][j];
      else {
        double pp = exp(1 - sqr(dist(i, 0)) / sqr(r));
        dp[i][j + 1] += dp[i - 1][j] * pp;
        dp[i][j] += dp[i - 1][j] * (1.0 - pp);
      }
    }
  }
  double p = 0.0;
  for (int i = k; i <= n; i++) p += dp[n][i];
  p = 1 - p;
  return p <= e;
}
bool solve() {
  cin >> n >> k >> e;
  e /= 1000.0;
  for (int i = 0; i < n + 1; i++) cin >> x[i] >> y[i];
  double l, r;
  l = 0;
  r = INF;
  double m;
  for (int i = 0; i < 1000; i++) {
    m = (l + r) / 2.0;
    if (fun(m))
      r = m;
    else
      l = m;
  }
  printf("%.12lf\n", l);
  return false;
}
int main() {
  prepare();
  while (solve())
    ;
  return 0;
}
