Farmer John 拥有一群奶牛,他计划建造一个围栏将它们围起来,以确保没有奶牛能够逃脱(位于围栏边界上的奶牛不被视为被围在围栏内)。场地中已经存在一些木桩,Farmer John 只能在这些木桩之间建造围栏段。请帮助 Farmer John 计算围栏的最小长度,从而最小化成本。
下图展示了样例 1 的示意图。黑点代表木桩,白点代表奶牛。橙色线段为最优围栏。
样例 1 的示意图
输入格式
第一行包含两个整数 $N, M$ ($1 \le N, M \le 100$)。$N$ 是木桩的数量,$M$ 是奶牛的数量。
接下来的 $N$ 行,每行包含两个整数 $x, y$ ($-10^6 \le x, y \le 10^6$),表示一个木桩在二维笛卡尔坐标系中的坐标 $(x, y)$。
接下来的 $M$ 行,每行包含两个整数 $x, y$ ($-10^6 \le x, y \le 10^6$),表示一头奶牛在二维笛卡尔坐标系中的坐标 $(x, y)$。
所有位置保证各不相同(即没有两个木桩、两头奶牛,或一个木桩和一头奶牛占据相同的位置)。
输出格式
输出一行,包含一个实数,表示围栏的最小长度,保留小数点后 2 位。如果无法建造这样的围栏,输出 -1。
样例
输入 1
6 4 2 0 1 2 -1 2 -2 1 -1 0 0 -2 0 0 1 1 -1 1 0 -1
输出 1
11.83
输入 2
3 1 0 0 1 1 -1 1 0 1
输出 2
-1