Lucy 非常懒。她的老板要求她去参加一个会议,当然她希望尽可能多地参加会议。但 Lucy 很懒,所以她决定选择一些会议参加,使得所有其他会议都与她参加的至少一个会议重叠。这样,她的老板就无法抱怨,因为她已经没有办法参加额外的会议了。
在阅读会议日程时,Lucy 发现即使采用这种选择会议的方法,她仍然需要参加很多会议。幸运的是,她的好朋友 Max 是会议的组织者之一,特别负责时间表。Max 不幸无法取消会议或重新安排时间,但他可以用另一种方式帮助 Lucy。
由于会议通常很无聊,如果主题发生变化,没人会太注意。因此,每当有两个会议重叠时,他可以将它们合并为一个会议。如果两个会议 $a$ 和 $b$ 满足 $\text{start}(a) \le \text{start}(b) \le \text{end}(a)$ 或反之,则它们重叠;合并后,新会议的开始时间为 $\min(\text{start}(a), \text{start}(b))$,结束时间为 $\max(\text{end}(a), \text{end}(b))$。Max 可以重复这个合并过程,甚至可以将这些合并后的会议与其他会议进一步合并。不重叠的会议不能合并,否则人们会注意到有人篡改了时间表。
Lucy 现在想知道她是否可以通过这种方法减少她必须参加的会议数量。如果可以,为了使这个数量至少减少 1,最少需要多少次合并操作?
输入格式
输入包含: 一行一个整数 $n$ ($2 \le n \le 10^6$),表示会议的数量。 $n$ 行,每行描述一个会议,包含两个整数 $a$ 和 $b$ ($0 \le a \le b \le 10^9$),其中 $a$ 是开始时间,$b$ 是结束时间。
输出格式
如果可以通过这种方法减少 Lucy 必须参加的会议数量,则输出所需的最少合并操作次数。否则输出 impossible。
样例
样例输入 1
4 1 3 2 5 4 7 6 9
样例输出 1
1
样例输入 2
5 1 3 4 7 8 10 2 5 6 9
样例输出 2
2
样例输入 3
3 1 2 2 3 3 4
样例输出 3
impossible