#include <bits/stdc++.h>
using namespace std;
const int MaxN = 200010;
const double PI = acos(-1);
class Point {
 public:
  double x, y, r;
  Point() {}
  Point(double x, double y, double r = 0) : x(x), y(y), r(r) {}
  Point operator-(const Point &a) const { return Point(x - a.x, y - a.y); }
} p[MaxN], o, ol;
int n, a;
double dist[MaxN], ang[MaxN];
inline double sqr(double x) { return x * x; }
double get_dist(const Point &a, const Point &b) {
  return sqrt(sqr(a.x - b.x) + sqr(a.y - b.y));
}
pair<double, int> h[MaxN];
int range_l[MaxN], range_r[MaxN];
int htot, cir[MaxN], ctot;
int uf[MaxN];
int get_f(int x) { return uf[x] == x ? x : uf[x] = get_f(uf[x]); }
inline bool cmp_len(int x, int y) {
  return range_r[x] - range_l[x] < range_r[y] - range_l[y];
}
bool check(double r) {
  htot = ctot = 0;
  o.r = r;
  for (int i = 1; i <= n; ++i)
    if ((r + dist[i] > p[i].r) && (fabs(r - dist[i]) < p[i].r)) {
      double tmp = (sqr(r) + sqr(dist[i]) - sqr(p[i].r)) / (2 * r * dist[i]);
      double thita = acos(tmp), now;
      now = ang[i] - thita;
      if (now < -PI) now += 2 * PI;
      if (now > PI) now -= 2 * PI;
      h[++htot] = make_pair(now, i);
      now = ang[i] + thita;
      if (now < -PI) now += 2 * PI;
      if (now > PI) now -= 2 * PI;
      h[++htot] = make_pair(now, i);
      cir[++ctot] = i;
    }
  sort(h + 1, h + htot + 1);
  memset(range_l, 0, sizeof(range_l));
  for (int i = 1; i <= htot; ++i) {
    if (range_l[h[i].second])
      range_r[h[i].second] = i;
    else
      range_l[h[i].second] = i;
  }
  sort(cir + 1, cir + ctot + 1, cmp_len);
  for (int i = 1; i <= htot + 1; ++i) uf[i] = i;
  for (int i = 1; i <= ctot; ++i) {
    int u = cir[i], j = get_f(range_l[u] + 1);
    if (j < range_r[u]) return 1;
    uf[range_l[u]] = range_l[u] + 1;
    uf[range_r[u]] = range_r[u] + 1;
  }
  return 0;
}
int main() {
  scanf("%d%d", &n, &a);
  o = Point(a, 0);
  ol = Point(-a, 0);
  for (int i = 1; i <= n; ++i) {
    scanf("%lf%lf", &p[i].x, &p[i].y);
    p[i].r = get_dist(p[i], ol);
    dist[i] = get_dist(p[i], o);
    ang[i] = atan2(p[i].y, p[i].x - a);
  }
  double l = 0, r = 2 * a;
  int cnt = 0;
  while (++cnt < 60) {
    double mid = (l + r) * 0.5;
    if (check(mid))
      r = mid;
    else
      l = mid;
  }
  printf("%.15lf\n", l);
  return 0;
}
