#include <bits/stdc++.h>
using namespace std;
int n, K, X, Y;
double p[109], d[109], dp[109][109];
double deta;
int sgn(double x) {
  if (fabs(x) < 1e-9)
    return 0;
  else if (x > 0)
    return 1;
  else
    return -1;
}
bool check(double x) {
  int cnt = 0, m = 0;
  for (int i = 1; i <= n; i++) {
    if (sgn(x - d[i]) >= 0)
      cnt++;
    else
      p[++m] = exp(1 - d[i] * d[i] / x / x);
  }
  if (cnt >= K) return 1;
  dp[0][0] = 1;
  for (int i = 1; i <= m; i++) {
    dp[i][0] = (1 - p[i]) * dp[i - 1][0];
    for (int j = 1; j <= i; j++) {
      dp[i][j] = dp[i - 1][j] * (1 - p[i]) + p[i] * dp[i - 1][j - 1];
    }
  }
  double cur = 0;
  for (int i = 0; i <= m; i++) {
    if (cnt + i >= K) cur += dp[m][i];
  }
  cur = 1 - cur;
  if (sgn(cur - deta) <= 0)
    return 1;
  else
    return 0;
}
int main() {
  scanf("%d%d%lf%d%d", &n, &K, &deta, &X, &Y);
  deta /= 1000;
  int cnt = 0;
  for (int i = 1; i <= n; i++) {
    double x, y;
    scanf("%lf%lf", &x, &y);
    d[i] = sqrt((x - X) * (x - X) + (y - Y) * (y - Y));
    if (sgn(d[i]) == 0) cnt++;
  }
  if (cnt >= K) {
    printf("%.17f\n", 0.0);
    return 0;
  } else {
    double L = 0, R = 1e9;
    while (R - L > 1e-9) {
      double M = (L + R) / 2;
      if (check(M))
        R = M;
      else
        L = M;
    }
    printf("%.17f\n", R);
  }
  return 0;
}
