#include<bits/stdc++.h>
using namespace std;
struct Activity {
    int begin;
	int end;
};
bool compare(Activity a, Activity b) {
    return a.end < b.end;
}
int main() {
    int n;
    cin >> n;
    vector<Activity> activities(n);
    for(int i=0;i<n;i++){
        cin>>activities[i].begin>>activities[i].end;
    }
    sort(activities.begin(),activities.end(),compare);
    int count=1;
    int lastEnd=activities[0].end;
    
    for(int i=1;i<n;i++){
        if(activities[i].begin>=lastEnd) {
            count++;
            lastEnd=activities[i].end;
        }
    }
    cout<<count<<endl;
    return 0;
}
/**************************************************************
	Problem: 1372
	User: linxichen
	Language: C++
	Result: Accepted
	Time:8 ms
	Memory:2076 kb
****************************************************************/