在圆周上标记了 $2n$ 个点,它们按顺时针方向等间距排列。这些点已被随机(详见“输入格式”部分)两两连接,形成了 $n$ 条弦。你的任务是找到一个最大的弦集合,使得其中任意两条弦都不相交,并输出该集合的大小。
输入格式
输入的第一行包含一个整数 $n$ ($1 \le n \le 100\,000$),表示弦的数量。
接下来的 $n$ 行,每行包含两个整数 $a_i$ 和 $b_i$ ($1 \le a_i < b_i \le 2n$),表示一条连接第 $a_i$ 个点和第 $b_i$ 个点的弦。所有 $2n$ 个 $a_i$ 和 $b_i$ 的值互不相同。
说明:为了增加任务的趣味性,本题的所有测试数据(样例除外)均为随机生成。对于每个测试点,先选定 $n$ 的值和一个随机数生成器的种子,然后生成一个 $1$ 到 $2n$ 的随机排列,并将其划分为 $n$ 对。之后,在每一对中,可能会交换两个数字以确保满足 $a_i < b_i$ 的条件。
样例测试是手动创建的,但为了使解法被接受,它也必须被正确解决。
输出格式
输出一个整数,表示互不相交的弦构成的最大集合的大小。
样例
输入 1
5 1 2 4 10 7 9 3 5 6 8
输出 1
3
说明
样例中的弦分布如下:
其中一个可能的最大合法弦集合包含连接点 1 和 2、3 和 5、以及 6 和 8 的弦。