#include <bits/stdc++.h>
using namespace std;
pair<int, int> a[110];
int n, k;
double p[110];
double dp[110][110];
int was[110][110];
double dist(pair<int, int> a, pair<int, int> b) {
  double x = a.first - b.first;
  double y = a.second - b.second;
  return sqrt(x * x + y * y);
}
double rec(int pos, int kol) {
  if (pos == n) {
    if (kol >= k) return 1;
    return 0;
  }
  if (was[pos][kol]) return dp[pos][kol];
  was[pos][kol] = 1;
  double res = p[pos] * rec(pos + 1, kol + 1);
  res += (1 - p[pos]) * rec(pos + 1, kol);
  return dp[pos][kol] = res;
}
int main() {
  scanf("%d", &n);
  int x, y, e;
  scanf("%d%d", &k, &e);
  scanf("%d%d", &x, &y);
  e = 1000 - e;
  for (int i = (0); i < (n); ++i) scanf("%d%d", &a[i].first, &a[i].second);
  double l = 0, r = 1e40;
  double best = -1;
  for (int i = (0); i < (1000); ++i) {
    double m = (l + r) / 2;
    for (int i = (0); i < (n); ++i) {
      double d = dist(make_pair(x, y), a[i]);
      if (d <= m)
        p[i] = 1;
      else {
        double k = d * d / m / m;
        p[i] = exp(1.0 - k);
      }
    }
    memset(was, 0, sizeof(was));
    double prob = rec(0, 0);
    if (prob * 1000 >= e) {
      best = m;
      r = m;
    } else
      l = m;
  }
  printf("%.10lf\n", best);
  return 0;
}
