#include <bits/stdc++.h>
using namespace std;
double bin_search(double l, double r, function<bool(double)> f) {
	while(r - l > 1e-3) {
		double mid = l + (r - l) / 2;
		if(f(mid)) {
			r = mid;
		} else {
			l = mid;
		}
	}
	return l;
}
int main() {
	int N, L; cin >> N >> L;
	vector<pair<long long, long long>> pts(N);
	for(int i = 0; i < N; ++i) {
		long long x, y; cin >> x >> y;
		y = abs(y);
		pts[i] = {x, y};
	}
	
	cout << bin_search(0, 2e9, [&](double rad) {
		
		double curr = 0.0;
		for(int i = 0; i < N; ++i) {
			double X = pts[i].first, Y = pts[i].second;
			double delta = sqrt(rad * rad - Y * Y);
			double left_isect = X - delta, right_isect = X + delta;
			if(left_isect <= curr) curr = max(curr, right_isect);
		}
		
		return curr >= L;
	}) << "\n";
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |