#include<stdio.h>
#include<math.h>
double x[205];
double y[205];
double w[205][205];
int k;
double xx,yy;
void floyd(){
int l,i,j;
for(l=0;l<k;l++)
for(i=0;i<k;i++)
for(j=0;j<k;j++)
if(w[i][j]>w[i][l]+w[l][j])
w[i][j]=w[i][l]+w[l][j];}
int main(){
int i,j;
for(i=0;i<205;i++)//
for(j=0;j<205;j++){
if(j!=i) w[i][j]=0xffff;
else w[i][j]=0;}
scanf("%lf%lf",&x[0],&y[0]);
scanf("%lf%lf",&x[1],&y[1]);
w[0][1]=60*sqrt((x[1]-x[0])*(x[1]-x[0])+(y[1]-y[0])*(y[1]-y[0]))/10000;
w[1][0]=w[0][1];
//printf("%0.2lf/n",w[0][1]);
k=2;
while(1){
if(2!=scanf("%lf%lf",&xx,&yy)) break;
x[k]=xx;y[k]=yy;
w[k][0]=60*sqrt((x[k]-x[0])*(x[k]-x[0])+(y[k]-y[0])*(y[k]-y[0]))/10000;
w[0][k]=w[k][0];
w[k][1]=60*sqrt((x[k]-x[1])*(x[k]-x[1])+(y[k]-y[1])*(y[k]-y[1]))/10000;
w[1][k]=w[k][1];
k++;
while(1){
scanf("%lf%lf",&xx,&yy);
if(xx==-1&&yy==-1)
break;
x[k]=xx;y[k]=yy;
w[k][0]=60*sqrt((x[k]-x[0])*(x[k]-x[0])+(y[k]-y[0])*(y[k]-y[0]))/10000;
w[0][k]=w[k][0];
w[k][1]=60*sqrt((x[k]-x[1])*(x[k]-x[1])+(y[k]-y[1])*(y[k]-y[1]))/10000;
w[1][k]=w[k][1];
w[k][k-1]=60*sqrt((x[k]-x[k-1])*(x[k]-x[k-1])+(y[k]-y[k-1])*(y[k]-y[k-1]))/40000;
w[k-1][k]=w[k][k-1];
k++;
}
}
for(i=0;i<k;i++)//次部是把所有点连起来!!!害我wa了n次
for(j=0;j<k;j++)
if((60*sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]))/10000)<w[i][j])
w[i][j]=60*sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]))/10000;
floyd();
printf("%0.0lf/n",w[0][1]);//小数点后的数是输出小数位数,是0代表没有小数部分输出
return 0;}