#include <bits/stdc++.h>
using namespace std;
int n, k, ee;
double X0, Y0, limit, d[110], dp[110][110];
double sqr(double x) { return x * x; }
bool check(double r) {
  double p = 0.0;
  r *= r;
  memset(dp, 0, sizeof(dp));
  dp[0][0] = 1;
  for (int i = 1; i <= n; i++) {
    if (r >= d[i])
      p = 1;
    else
      p = exp(1 - d[i] / r);
    for (int j = 0; j <= i; j++) {
      if (j)
        dp[i][j] = dp[i - 1][j - 1] * p + dp[i - 1][j] * (1 - p);
      else
        dp[i][j] = dp[i - 1][j] * (1 - p);
    }
  }
  double sum = 0.0;
  for (int i = 0; i <= k - 1; i++) sum += dp[n][i];
  if (sum <= limit)
    return true;
  else
    return false;
}
int main() {
  double xx, yy;
  scanf("%d", &n);
  scanf("%d%d", &k, &ee);
  limit = (double)ee / 1000.0;
  scanf("%lf%lf", &X0, &Y0);
  for (int i = 1; i <= n; i++) {
    scanf("%lf%lf", &xx, &yy);
    d[i] = sqr(xx - X0) + sqr(yy - Y0);
  }
  double l = 0.0, r = 10000.0, ans, mid;
  while (r - l >= 0.00000001) {
    mid = (l + r) / 2;
    if (check(mid)) {
      r = mid - 0.00000001;
      ans = mid;
    } else
      l = mid + 0.00000001;
  }
  printf("%.10lf\n", ans);
}
