编程题
### 问题描述
在一个远古的王国中,存在着许多村庄和宝石矿。王国的国王决定,为了方便运输宝石,需要建造道路连接所有的村庄和宝石矿,但由于资金限制,希望道路的总长度尽可能短。
但是,有一个特殊的规定:由于宝石矿的宝石非常重,每个宝石矿必须直接与至少一个村庄相连,不能与其他宝石矿直接连接。如果某个村庄与宝石矿 $a$ 的道路上有另外一个宝石矿 $b$,则其将被视为不可通行的,只能通过宝石矿 $b$ 的专属的道路通行。
请你计算出为了满足国王的要求,需要建造的最短道路的总长度。
### 输入格式
第一行包含两个整数 $n$ 和 $m$,分别表示村庄的数量和宝石矿的数量。
接下来的 $n$ 行,每行包含两个整数 $x$ 和 $y$,表示每个村庄的坐标。
随后的 $m$ 行,同样每行包含两个整数 $x$ 和 $y$,表示每个宝石矿的坐标。
### 输出格式
输出一个数字,表示最短的道路总长度,结果保留两位小数。
### 样例输入
```
3 2
1 1
3 3
5 1
2 2
4 2
```
### 样例输出
```
8.49
```
### 测评数据规模
对于 $40$% 的数据,$1 \le n \le 30$,$1 \le m \le 30$。
对于 $80$% 的数据,$1\le n \le 50$,$1 \le m \le 50$。
对于 $100$% 的数据,$1 \le n \le 100$,$1 \le m \le 100$,$-10^4 \le x, y \le 10^4$。