#include <bits/stdc++.h>
using namespace std;
double dp[110][110], p[110], dist[110], E;
int n, k;
inline bool ok(double r) {
  memset(dp, 0, sizeof(dp));
  ;
  for (int x = 1; x <= n; x++) {
    if (dist[x] <= r)
      p[x] = 1.0;
    else
      p[x] = (double)(exp(1.0 - ((dist[x] * dist[x]) / (r * r))));
  }
  dp[0][0] = 1;
  for (int x = 1; x <= n; x++) {
    dp[x][0] = dp[x - 1][0] * (1.0 - p[x]);
    for (int y = 1; y <= x; y++) {
      dp[x][y] = dp[x - 1][y] * (1.0 - p[x]) + dp[x - 1][y - 1] * p[x];
    }
  }
  double ret = 0;
  for (int x = 0; x < k; x++) ret += dp[n][x];
  return ret <= E;
}
int main() {
  scanf("%d", &n);
  ;
  scanf("%d", &k);
  ;
  scanf("%lf", &E);
  ;
  E /= 1000.0;
  double X, Y;
  scanf("%lf", &X);
  ;
  scanf("%lf", &Y);
  ;
  for (int x = 1; x <= n; x++) {
    double XX, YY;
    scanf("%lf", &XX);
    ;
    scanf("%lf", &YY);
    ;
    dist[x] = sqrt((XX - X) * (XX - X) + (YY - Y) * (YY - Y));
  }
  double l = 0, r = 10000;
  for (int x = 1; x <= 100; x++) {
    double m = (l + r) / 2.0;
    if (ok(m))
      r = m;
    else
      l = m;
  }
  printf("%.17f\n", (l + r) / 2.0);
}
