/* 区间调度问题:
有n项工作 分别在s 时间开始 在t 时间结束 每项工作都可以参与 ;且必须全程参与 工作时间不可以重叠
(开始 结束的时间重叠 也不允许) 那么 你最多可以参加多少项工作?
思路: 在可选工作中 每次都选择结束时间最少的工作
*/
#include<iostream >
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=1000;
int n;
int s[maxn],t[maxn];
pair <int ,int> itv[maxn];
void solve(){
for(int i=0;i<n;i++){
itv[i].first = t[i];//结束时间
itv[i].second=s[i]; //开始时间
}
sort(itv,itv+n);
int ans=0,T=0;
for (int i=0;i<n;i++){
if(T<itv[i].second){
ans++;
T=itv[i].first;
}
}
cout<< ans<<endl;
}
int main (){
cin>>n;
for (int i=0;i<n;i++){
cin>>s[i]>>t[i];
}
solve();
return 0;
}