#include<bits/stdc++.h>
using namespace std;
struct point{
double x,y,z;
};
point *p;
bool cmp(point a,point b)
{
if(a.z<b.z)
return true;
}
double dis(point a,point b)
{
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+(a.z-b.z)*(a.z-b.z));
}
int main()
{
int n;
double ans=0;
cin>>n;
p=new point[n];
for(int i=0;i<n;i++)
cin>>p[i].x>>p[i].y>>p[i].z;
sort(p,p+n,cmp);
for(int i=0;i<n;i++)
cout<<p[i].x<<" "<<p[i].y<<" "<<p[i].z<<endl;
for(int i=0;i<n-1;i++)
ans=ans+dis(p[i+1],p[i]);
cout<<ans<<endl;
return 0;
}