#include<bits/stdc++.h>
using namespace std;
const double PI=acos(-1);
#define double long double
#define endl '\n'
const int N=1010;
const double inf=0x3f3f3f3f;
double g[N][N];
double dist[N];
bool st[N];
int n,m;
double prim(){
for(int i=1;i<=n;i++) dist[i]=1e9;
double res=0;
for(int i=0;i<n;i++){
int t=-1;
for(int j=1;j<=n;j++){
if(!st[j]&&(t==-1||dist[t]>dist[j]))
t=j;
}
if(i&&dist[t]==inf) return inf ;
if(i) res+=dist[t];
for(int j=1;j<=n;j++) dist[j]=min(dist[j],g[t][j]);
st[t]=true;
}
return res;
}
#define pii pair<int,int>
pii p[N];
#define x first
#define y second
signed main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
int a,b;cin>>a>>b;
p[i]={a,b};
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
if(i!=j)
g[i][j]=sqrt((p[i].x-p[j].x)*(p[i].x-p[j].x)+(p[i].y-p[j].y)*(p[i].y-p[j].y) );
else g[i][j]=1e9;
}
while(m--){
int a,b;cin>>a>>b;
double c=0;
g[a][b]=g[b][a]=min(c,g[a][b]);;
}
double t=prim();
printf("%.2Lf",t);
return 0;
}