/*
Acwing 905.区间选点
给定 N 个闭区间 [ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。
输出选择的点的最小数量。
位于区间端点上的点也算作区间内。
输入格式:
第一行包含整数 N,表示区间数。
接下来 N 行,每行包含两个整数 ai,bi,表示一个区间的两个端点。
输出格式:
输出一个整数,表示所需的点的最小数量。
数据范围
1≤N≤105,
?109≤ai≤bi≤109
输入样例:
3
-1 1
2 4
3 5
输出样例:
2
思路:1.将所有区间按照右端点排序
2.遍历所有区间,ed初始化为无穷小
如果本次区间不能覆盖上次区间的右端点,ed<e[i].l,那么需要选择一个新的点 res++;ed=e[i].r
如果本次区间可以覆盖上次区间的右端点,则进行下一轮循环
*/
#include<bits/stdc++.h>
using namespace std;
int n;
struct SS{
int l,r;
}e[100010];
bool cmp(SS x,SS y)
{
return x.r<y.r;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
int x,y;
cin>>x>>y;
e[i]={x,y};
}
sort(e+1,e+1+n,cmp);
int ed=-2e8,res=0;
for(int i=1;i<=n;i++)
{
if(e[i].l>ed)
{
res++;
ed=e[i].r;
}
}
cout<<res;
return 0;
}