#include<cstdio> #include<cmath> #include<algorithm> #include<iostream> typedef struct Node { double l; double r; bool operator < (const Node & a) const { return l < a.l; } }Qstr; Qstr q[1500]; using namespace std; int main(void) { int n; int d; int res; int kase = 0; while (scanf("%d%d", &n, &d), (n||d)) { int tt = 0; int x, y; kase++; res = 1; for (int i=0; i<n; i++) { scanf("%d%d", &x, &y); if (tt < y) { tt = y; } q[i].l = x - sqrt(d*d - y*y); q[i].r = x + sqrt(d*d - y*y); } if (tt > d) { printf("Case %d: %d\n", kase, -1); } else { sort(q, q+n); double v = q[0].r; for (int i=0; i<n; i++) { if (q[i].l > v) { res++; v = q[i].r; } if (q[i].r < v) { v = q[i].r; } } printf("Case %d: %d\n", kase, res); } } return 0; }