1 #include<cstdio> 2 #include<cstdlib> 3 #include<cstring> 4 #include<algorithm> 5 #include<math.h> 6 7 const int MAXN=10000; 8 using namespace std; 9 struct node 10 { 11 double x1,x2; 12 } p[MAXN]; 13 bool cmp(node a,node b) 14 { 15 return a.x2<b.x2; 16 } 17 int main() 18 { 19 int n,m,ii=0; 20 double x,y; 21 while(scanf("%d%d",&n,&m)) 22 { 23 ii++; 24 if(n==0&&m==0) break; 25 int flag=0; 26 for(int i=0; i<n; i++) 27 { 28 scanf("%lf%lf",&x,&y); 29 if(fabs(y)>m) flag=1; 30 double c=sqrt(m*m-y*y); 31 p[i].x1=x+c; 32 p[i].x2=x-c; 33 } 34 if(flag==1) 35 { 36 printf("Case %d: %d ",ii,-1); 37 continue; 38 } 39 sort(p,p+n,cmp); 40 double c=p[0].x1; 41 int t=1; 42 for(int i=1; i<n; i++) 43 { 44 if(p[i].x1<c) 45 { 46 c=p[i].x1; 47 } 48 else if(p[i].x2>c) 49 { 50 t++; 51 c=p[i].x1; 52 } 53 } 54 printf("Case %d: %d ",ii,t); 55 } 56 return 0; 57 }