#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-9;
const double E = 2.7182818284590452353;
const int inf = (int)1e9;
const int MAX_N = 100 + 10;
double dp[MAX_N][MAX_N];
int visit[MAX_N][MAX_N];
int n, k;
double ee, r;
vector<complex<double> > v;
double f(double d) {
  if (fabs(r) <= eps) {
    return (fabs(d) <= eps ? 1 : 0);
  }
  if (d <= r) return 1;
  return pow(E, 1 - (d * d) / (r * r));
}
double rec(int idx, int here) {
  if (here == k) return 1;
  if (idx == n + 1) return 0;
  double &ref = dp[idx][here];
  if (visit[idx][here]) return ref;
  visit[idx][here] = 1;
  double pp = f(abs(v[idx] - v[0]));
  ref = pp * rec(idx + 1, here + 1);
  ref += (1 - pp) * rec(idx + 1, here);
  return ref;
}
int main() {
  cin >> n >> k >> ee;
  ee /= 1000;
  for (int i = 0; i <= n; i++) {
    double x, y;
    cin >> x >> y;
    v.push_back(complex<double>(x, y));
  }
  double lo = 0, hi = 1000000;
  for (int rep = 0; rep < 300; rep++) {
    memset(visit, 0, sizeof(visit));
    double mid = (lo + hi) / 2;
    r = mid;
    double fail = 1 - rec(1, 0);
    if (fail > ee)
      lo = mid;
    else
      hi = mid;
  }
  printf("%.15f\n", lo);
  return 0;
}
