#include<iostream>
using namespace std;
int n,b[1001],e[1001];
void solve()
{
int ans=0;
int t = -1;
for(int i=1;i<=n;++i)
//如果当前活动与之前最后结束的活动不冲突,就接受当前活动。
if(b[i]>=t) {
++ans;
t=e[i];
}
cout<<ans<<endl;
}
int main()
{
int i,j,t;
cin>>n;
for(i=1;i<=n;i++)
cin>>b[i]>>e[i];
//按照结束时间对2个数组同时排序
for(i = 1;i < n;i++){
for(j = 1;j <= n - i;j++){
if(e[j] > e[j+1]){
swap(e[j],e[j+1]);
swap(b[j],b[j+1]);
}
}
}
solve();
return 0;
}
/**************************************************************
Problem: 1372
User: admin
Language: C++
Result: Accepted
Time:8 ms
Memory:2080 kb
****************************************************************/