#include <stdio.h>
#include <math.h>
FILE *f,*g;
float s;
int ss,nr,n,d,k,x,y,l,ll,m,ab[30001],vv[30001],a[30001],v[30001],c[250],i,j,min,aa,bb,o,oo;
int main ()
{
f=fopen("stalpi3.in","r");
g=fopen("stalpi3.out","w");
fscanf(f,"%d %d",&n,&d);
k=0;
nr=3;
for (i=1;i<=n;i++)
{
fscanf(f,"%d %d",&x,&y);
v[x]=y;
vv[x]=i;
if (y>k) k=y;
}
for (i=1;i<=n;i++){
fscanf(f,"%d %d",&x,&y);
a[x]=y;
ab[x]=i;
}
s=0;
for (j=1;j<=k;j++){
l=0;
min=20000;
ll=0;
for (i=1;i<=30000;i++)
{
if (v[i]==j)
l=i;
if (a[i]==j)
ll=i;
if (ll!=0 && l!=0)
if (fabs(l-ll)<min){ min=fabs(l-ll);o=vv[l];oo=ab[ll];}
}
m++;
c[m]=o;
m++;
c[m]=oo;
aa=min*min;
bb=d*d;
s=s+sqrt(aa+bb);
}
ss=s*1000;
if (ss % 10!=9)
fprintf(g,"%.3f\n",s);
else fprintf(g,"%.3f\n",s-0.001);
for (i=1;i<=m;i++){
if (i%2==1)
fprintf(g,"%d",c[i]);
else
{
fprintf(g," %d",c[i]);
fprintf(g,"\n");
}
}
fclose(g);
return 0;
}