#include <bits/stdc++.h>
using namespace std;
const long double eps = 1e-10;
const int maxn = 110;
int n, k, e;
long double x, y;
long double p[maxn];
long double dp[maxn][maxn];
long double dis[maxn];
long double calc(int j, long double r) {
  if (dis[j] < r * r + eps) return 1.0;
  return exp(1 - dis[j] / (r * r));
}
bool check(long double r) {
  for (int i = 1; i <= n; i++) {
    p[i] = calc(i, r);
  }
  memset(dp, 0, sizeof(dp));
  dp[0][0] = 1000;
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j <= i; j++) {
      dp[i][j] = dp[i - 1][j] * (1 - p[i]) + dp[i - 1][j - 1] * p[i];
    }
  }
  long double sum = 0;
  for (int i = 0; i < k; i++) sum += dp[n][i];
  return sum > e;
}
int main() {
  scanf("%d%d%d", &n, &k, &e);
  cin >> x >> y;
  long double t1, t2;
  for (int i = 1; i <= n; i++) {
    cin >> t1 >> t2;
    dis[i] = ((t1 - x) * (t1 - x)) + ((t2 - y) * (t2 - y));
  }
  long double l = 0.0, r = 10000.0;
  for (int i = 0; i < 50; i++) {
    long double m = (l + r) * 0.5;
    if (check(m))
      l = m;
    else
      r = m;
  }
  cout << fixed << setprecision(10) << r << endl;
  return 0;
}
