Weenesia 是一个由二维平面上完美的圆形岛屿组成的群岛。许多岛屿上生长着笔直向上的棕榈树,因此我们可以用一个二维点和一个高度来表示一棵树。
图片由 Anne Sheppard 提供,采用 cc-by 协议
我们希望在这些岛屿上建立一个快递系统,即我们希望能够将任何物体从任意陆地位置移动到任何其他陆地位置。在同一个岛屿内移动物体是没有限制的。此外,还可以爬上一棵棕榈树,将物体投掷到距离棕榈树高度成比例(或更近)的距离,并可能落入另一个岛屿。
遗憾的是,这可能不足以实现我们的目标,因此我们可能需要在两个岛屿之间建造一条隧道。隧道连接两个岛屿上的两个点,并且可以穿过海洋和其他岛屿。隧道的两个入口中的每一个都必须距离海洋至少 1 米(即 100 厘米),以避免被淹没。
你的任务是找到一条隧道的最小长度,使得快递系统能够连通。
输入格式
第一行包含三个整数 $n$、$m$ 和 $k$ ($1 \le n \le 5\,000, 0 \le m \le 10\,000, 1 \le k \le 1\,000$),分别表示岛屿数量、棕榈树数量以及物体投掷距离与棕榈树高度的比率。
接下来的 $n$ 行,每行包含三个整数 $x, y$ 和 $r$ ($|x|, |y| \le 10^6, 100 \le r \le 10^6$),表示岛屿的中心坐标和半径(单位为厘米)。接下来的 $m$ 行,每行包含三个整数 $x, y$ 和 $h$ ($|x|, |y| \le 10^6, 1 \le h \le 10^4$),表示棕榈树的中心坐标和高度(单位为厘米)。
任意两个岛屿互不相交。每棵棕榈树都严格位于某个岛屿内部。没有两棵棕榈树生长在同一个位置。
输出格式
输出隧道的最小长度(单位为厘米)。如果不需要隧道,则输出 0;如果不存在这样的隧道,则输出 “impossible”。答案的绝对或相对误差在 $10^{-6}$ 以内均可被接受。
样例
输入格式 1
3 2 3 0 0 400 1000 0 400 2000 0 400 300 0 150 1300 0 150
输出格式 1
1400
输入格式 2
3 2 2 0 0 400 1000 0 400 2000 0 400 300 0 100 1300 0 100
输出格式 2
impossible