Byteasar 最近开始了博士研究,他既要搞科研又要教学。第一学期结束了,学生们参加了考试,现在 Byteasar 需要批改试卷。
每位学生提交了一张尺寸为 $A \times B$ 毫米的纸。根据资深同事的建议,Byteasar 采用了标准的大学流程:他抓起所有的纸张,把它们抛向空中。纸张落在了地上。令他惊讶的是,这些纸张排列得与他长方形办公室的墙壁平行。只有那些位于最上层的纸张对应的学生才能通过考试。
如果一张纸的内部没有任何一点被其他纸张覆盖,那么这张纸就在最上层。特别地,这意味着纸张的边缘可以被覆盖。
请编写一个程序来检查哪些学生通过了考试。
输入格式
输入的第一行包含三个整数 $n$、$A$ 和 $B$ ($1 \le n \le 100,000$,$1 \le A, B \le 10^{9}$),分别表示纸张的数量以及每张纸的尺寸(单位为毫米)。纸张是边与坐标轴平行的矩形。
接下来的 $n$ 行按纸张落地的顺序描述了每张纸。每张纸的描述由三个整数 $x_{i}$、$y_{i}$、$r_{i}$ ($-10^{9} \le x_{i}, y_{i} \le 10^{9}$,$r_{i} \in \{0, 1\}$) 组成。点 $(x_{i}, y_{i})$ 是纸张的左下角。如果 $r_{i} = 0$,则该纸张是一个高为 $A$、宽为 $B$ 的矩形;如果 $r_{i} = 1$,则该纸张是一个高为 $B$、宽为 $A$ 的矩形。
输出格式
输出的第一行应包含一个整数 $k$,表示没有被其他纸张覆盖(边缘除外)的纸张数量。第二行应按升序输出这些纸张的编号。纸张按输入顺序从 $1$ 到 $n$ 编号。
样例
输入 1
4 3 2 1 1 0 3 2 0 6 2 0 4 3 1
输出 1
2 1 4