#include <bits/stdc++.h>
using namespace std;
double f[120], l, r, e, mid;
int X[120], Y[120], n, K, i;
bool check(double mid) {
  memset(f, 0, sizeof(f));
  f[0] = 1;
  for (int i = 1; i <= n; ++i) {
    double d =
        sqrt((X[i] - X[0]) * (X[i] - X[0]) + (Y[i] - Y[0]) * (Y[i] - Y[0]));
    double tmp;
    if (d <= mid)
      tmp = 1;
    else
      tmp = exp(1 - d * d / mid / mid);
    for (int j = n; j >= 0; --j) f[j + 1] += f[j] * tmp, f[j] *= (1 - tmp);
  }
  double res = 0;
  for (int i = 0; i < K; ++i) res += f[i];
  return res < e;
}
int main() {
  scanf("%d%d%lf", &n, &K, &e);
  e /= 1000;
  for (i = 0; i <= n; ++i) scanf("%d%d", &X[i], &Y[i]);
  l = 0;
  r = 10000;
  while (l + 1e-7 <= r) {
    mid = (l + r) / 2;
    if (check(mid))
      r = mid;
    else
      l = mid;
  }
  printf("%.10lf\n", (l + r) / 2);
}
