#include <bits/stdc++.h>
using namespace std;
int n, k, m, p, dist[100];
pair<int, int> mas[100], pt;
double l, r, res, pr[100], dyn[200][200];
bool ok() {
  if (0) {
    cout << "res"
         << ": " << res << endl;
  };
  for (int i = 0; i < n; ++i) {
    if (dist[i] <= res * res) {
      pr[i] = 1;
    } else {
      pr[i] = exp(1.0 - dist[i] / res / res);
    }
  }
  if (0) {
    cout << "pr"
         << ": ";
    for (int innercounter = 0; innercounter < n; ++innercounter)
      cout << pr[innercounter] << " ";
    cout << endl;
  };
  dyn[0][0] = 1 - pr[0];
  dyn[0][1] = pr[0];
  for (int i = 2; i <= n; ++i) dyn[0][i] = 0;
  for (int i = 1; i < n; ++i) {
    dyn[i][0] = dyn[i - 1][0] * (1 - pr[i]);
    for (int j = 1; j <= i + 1; ++j)
      dyn[i][j] = pr[i] * dyn[i - 1][j - 1] + (1 - pr[i]) * dyn[i - 1][j];
  }
  double res = 0;
  for (int i = k; i <= n; ++i) res += dyn[n - 1][i];
  if (0) {
    cout << "res"
         << ": " << res << endl;
  };
  return res * 1000 >= p;
}
int main() {
  scanf("%d%d%d", &n, &k, &p);
  p = 1000 - p;
  scanf("%d%d", &pt.first, &pt.second);
  for (int i = 0; i < n; ++i) {
    scanf("%d%d", &mas[i].first, &mas[i].second);
    dist[i] = ((mas[i].first - pt.first) * (mas[i].first - pt.first) +
               (mas[i].second - pt.second) * (mas[i].second - pt.second));
  }
  l = 0;
  r = 10000;
  while (r - l > 1e-10) {
    if (0) {
      cout << "Next" << endl;
    };
    if (0) {
      cout << "l"
           << ": " << l << endl;
    };
    if (0) {
      cout << "r"
           << ": " << r << endl;
    };
    res = (r + l) / 2;
    if (0) {
      cout << "res"
           << ": " << res << endl;
    };
    if (ok())
      r = res;
    else
      l = res;
    if (0) {
      cout << "****************" << endl;
    };
  }
  printf("%.7lf", r);
  return 0;
}
