#include <bits/stdc++.h>
using namespace std;
struct node{
    int left;
    int right;
}a[200010];
int n,ans=1;

bool cmp(node A,node B)
{
    return A.right<B.right;
}
int main() {
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i].left>>a[i].right;
    }
    sort(a+1,a+n+1,cmp);
    int tmp=1;
    for(int j=2;j<=n;j++)
    {
        if(a[tmp].right<=a[j].left) {tmp=j;ans++;}
        else continue;
    }
    cout<<ans;
}
/* 时间刻度
0 1 2 3 4 5 6 7 8 9 10 11
  1   3
  1     4
      3   5
	  按照活动最晚结束时间进行右侧排序
	  如果i个活动的最晚结束时间小于或等于i+1个活动的最早开始时间,就数量加1(统计数量要从1开始,因为要包含i本身)
	  否则跳过,进行下一次循环。
*/