#include <bits/stdc++.h>
using namespace std;
template <class T>
inline T bigmod(T p, T e, T M) {
  long long ret = 1;
  for (; e > 0; e >>= 1) {
    if (e & 1) ret = (ret * p) % M;
    p = (p * p) % M;
  }
  return (T)ret;
}
template <class T>
inline T gcd(T a, T b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
template <class T>
inline T modinverse(T a, T M) {
  return bigmod(a, M - 2, M);
}
double dp[101][101], dis[101];
pair<double, double> pp[101], P;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  long long a, b = 0, c, d = 0, e, f = 0, g, h = 0, x, y, z = 0;
  cin >> a >> b >> c;
  double eta = (double)c / 1000.0;
  cin >> P.first >> P.second;
  for (int i = (1); i < (a + 1); ++i) cin >> pp[i].first >> pp[i].second;
  double lo = 0.0, hi = 10000;
  for (int k = (0); k < (100); ++k) {
    double mid = (lo + hi) / 2.0;
    for (int i = (1); i < (a + 1); ++i) {
      dis[i] = hypot(pp[i].first - P.first, pp[i].second - P.second);
      if (dis[i] <= mid)
        dis[i] = 1.0;
      else
        dis[i] = exp(1.0 - ((dis[i] * dis[i]) / (mid * mid)));
    }
    memset(dp, 0, sizeof dp);
    dp[0][0] = 1.0;
    double p = 0.0;
    for (int i = 1; i <= a; i++) {
      dp[i][0] = (1.0 - dis[i]) * dp[i - 1][0];
      for (int j = 1; j <= a; j++) {
        dp[i][j] = dis[i] * dp[i - 1][j - 1];
        dp[i][j] += (1.0 - dis[i]) * dp[i - 1][j];
      }
    }
    for (int i = b; i <= a; i++) p += dp[a][i];
    p = 1.0 - p;
    if (p > eta)
      lo = mid;
    else
      hi = mid;
  }
  cout << fixed << setprecision(8) << lo << endl;
}
