#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
****************************************************************/