#include <bits/stdc++.h>
#define IOS ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define _zero(a) memset(a, 0, sizeof(a))
#define endl '\n'
#define int long long
#define mp make_pair
#define all(a) (a).begin(), (a).end()
#define rall(a) (a).rbegin(), (a).rend()
#define PII pair<int, int>
typedef long long ll;
typedef double dd;
typedef long double ld;
using namespace std;
const int inf = 1e10;
const int M = 998244353;
const ld pi = atan2(0, -1);//arctan(y/x);
const ld eps = 1e-8;
const int maxn = 1e3 + 100;
int n;
dd d;
dd x1[maxn], x2[maxn];
int f[maxn];
bool cmp(int a, int b)
{
return x1[a] < x1[b];
}
signed main()
{
IOS;
cin >> n >> d;
dd x, y;
for(int i = 1; i <= n; i++){
cin >> x >> y;
if(y > d){
cout << -1;
return 0;
}
dd get_d = sqrt(d*d - y*y);
x1[i] = x - get_d, x2[i] = x + get_d;
}
for(int i = 1; i <= n; i++) f[i] = i;
sort(f+1, f+1+n, cmp);
int ans = 1;
dd k = x2[f[1]];
for(int i = 2; i <= n; i++){
int idx = f[i];
if(x1[idx] > k){
++ans;
k = x2[idx];
}
else{
k = min(k, x2[idx]);
}
}
cout << ans;
return 0;
}