#include <bits/stdc++.h>
using namespace std;
const int Maxn = 105;
const long double eps = 1e-9L;
int n, k, e;
int x[Maxn], y[Maxn];
long double res;
long double Dist(long double x1, long double y1, long double x2,
                 long double y2) {
  return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}
long double P(long double D, long double R) {
  if (D <= R) return 1.0L;
  return exp(1.0L - (D / R) * (D / R));
}
bool Enough(long double r) {
  long double prob[Maxn] = {1.0L};
  for (int i = 1; i <= n; i++)
    for (int j = i - 1; j >= 0; j--) {
      long double p = P(Dist(x[i], y[i], x[0], y[0]), r);
      prob[j + 1] += p * prob[j];
      prob[j] *= 1.0L - p;
    }
  long double fail = 0.0L;
  for (int i = 0; i < k; i++) fail += prob[i];
  return 1000.0L * fail + eps <= e;
}
void Search(long double l, long double r) {
  if (l + eps > r) return;
  long double mid = (l + r) / 2;
  if (Enough(mid)) {
    res = mid;
    Search(l, mid - eps);
  } else
    Search(mid + eps, r);
}
int main() {
  cin >> n >> k >> e;
  for (int i = 0; i <= n; i++) cin >> x[i] >> y[i];
  Search(eps, 3000.0L);
  cout << fixed << setprecision(12) << res << endl;
  return 0;
}
