#CF809D. 在波罗的海国家搭便车

在波罗的海国家搭便车

D. 在波罗的海国家搭便车

时间限制:2 秒
内存限制:256 MB

Leha 和 Noora 决定去波罗的海国家旅行。从上一个问题可知,Leha 把车忘在了餐厅的停车场。不幸的是,向看门人求助并没有帮黑客找到车,于是两位朋友决定搭便车。

他们计划总共游览 nn 个城镇。然而,第 ii 个城镇的景点只在第 lil_i 天到第 rir_i 天之间对游客开放。

该怎么办?Leha 提议为每个城镇 ii 选择游览的日期,即选择区间 [li,ri][l_i, r_i] 内的任意整数 xix_i
然后 Noora 选择某个城镇的子序列 id1,id2,,idkid_1, id_2, \dots, id_k,要求满足:

  • 城镇编号严格递增:idi<idi+1id_i < id_{i+1} 对所有 1i<k1 \le i < k 成立;
  • 游览日期也严格递增:xidi<xidi+1x_{id_i} < x_{id_{i+1}} 对所有 1i<k1 \le i < k 成立。

请帮助 Leha 和 Noora 选择每个城镇 iixix_i 以及子序列 id1,,idkid_1, \dots, id_k,使得他们能游览的城镇数量最大。

你可以假设朋友们可以在任意一天开始旅行。


输入格式

第一行包含一个整数 nn1n31051 \le n \le 3 \cdot 10^5),表示 Leha 和 Noora 计划游览的城镇数量。

接下来的 nn 行,每行包含两个整数 li,ril_i, r_i1liri1091 \le l_i \le r_i \le 10^9),表示第 ii 个城镇的景点开放的天数区间。


输出格式

输出一个整数,表示 Leha 和 Noora 能够游览的最大城镇数量。


示例

输入

5
6 6
1 2
3 4
2 2
1 4

输出

3

样例解释

考虑第一个样例。
我们可以采取如下计划:

  • 第 2 个城镇在第 1 天游览;
  • 第 3 个城镇在第 3 天游览;
  • 第 5 个城镇在第 4 天游览。
    这样就能得到最优答案。