有时,一座高山看起来可能比一座低山更小,因为它距离更远。低山甚至可能完全遮挡住高山。这使得识别哪座山是哪座山变得有些棘手。你的任务是识别观察者可见的山峰。
对于本题,假设世界是平坦的。每座山都是一个坡度为 45 度的向下倾斜的圆锥体,因此每座山底座(海拔 0 处)的半径等于其高度。不同山的圆锥体可以相互交叉。每座山的山峰由三维笛卡尔坐标系中的三个整数坐标给出,其中 $-10000 \le x, y \le 10000$,$0 < z \le 10000$。这里,$z$ 是山峰的海拔高度。观察者位于坐标 $(0, 0, 0)$。观察者和任何山峰都不在任何其他山的圆锥体内部(或边界上)。如果一个山峰在观察者眼中恰好位于另一座山的边缘或山峰之后,则认为它不可见。
输入格式
第一行包含一个整数 $1 \le n \le 1000$,表示山的数量。接下来的 $n$ 行,每行包含三个空格分隔的整数 $-10000 \le x, y \le 10000$,$1 \le z \le 10000$,表示每座山的山峰坐标,随后是一个最多 30 个大写字母组成的字符串,表示山的名称。所有山名都是唯一的。
输出格式
按顺时针顺序,每行输出一个观察者可见的山峰名称。即从正 $y$ 轴方向开始,然后转向正 $x$ 轴,接着转向负 $y$ 轴,再转向负 $x$ 轴,最后回到正 $y$ 轴。恰好位于正 $y$ 轴上的山峰应列在列表的开头,而不是结尾。如果两个山峰在观察者眼中恰好重叠(一个在另一个的正上方),则先列出较高的那个。
样例
样例输入 1
3 0 10000 8849 EVEREST 10000 0 5959 LOGAN 0 -10000 4808 BLANC
样例输出 1
EVEREST LOGAN BLANC
样例输入 2
6 8 0 5 FUJI 9 1 5 MATTERHORN 9 0 5 KEBNEKAISE 9 -1 5 FAGRADALSFJALL 16 0 10 KILIMANJARO 120 0 80 DENALI
样例输出 2
MATTERHORN DENALI FUJI FAGRADALSFJALL