#J10029. 砍卡牌

砍卡牌

问题描述

高桥君拥有 NN 张 "AtCoder Magics" 卡牌。我们将第 ii 张卡牌称为卡牌 ii。每张卡牌都有强度和代价两个参数,第 ii 张卡牌的强度为 AiA_i,代价为 CiC_i

高桥君觉得弱的卡牌没用,打算把它们扔掉。具体地,他会不断重复以下操作,直到无法继续为止:

  • 选择两张卡牌 xxyy,满足 Ax>AyA_x > A_yCx<CyC_x < C_y,然后把卡牌 yy 扔掉。

可以证明,当无法继续操作时,剩下的卡牌集合是唯一确定的。请你求出这些最终未被扔掉的卡牌。

输入格式

第一行 NN

接下来 NN 行,每行 Ai,CiA_i, C_i

输出格式

第一行 mm(剩下的卡牌数)。第二行输出剩下的卡牌编号,按升序。

样例输入 1

3
2 4
1 1
3 2

样例输出 1

2
2 3

样例输入 2

5
1 1
10 2
100 3
1000 4
10000 5

样例输出 2

5
1 2 3 4 5

样例输入 3

6
32 101
65 78
2 29
46 55
103 130
52 40

样例输出 3

4
2 3 5 6

评测数据规模

  • 2N2×1052 \le N \le 2 \times 10^5

  • 1Ai,Ci1091 \le A_i, C_i \le 10^9

  • AA 互不相同

  • CC 互不相同