#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int> > dp;
bool good(pair<int, int> p) {
  if (dp.empty()) return false;
  if (p.first < dp.back().first || p.second > dp.back().second) return false;
  return true;
}
bool Ac(pair<int, int> p) {
  if (dp.empty()) return true;
  if (p.first > dp.back().second) return true;
  return false;
}
int main() {
  int n;
  cin >> n;
  vector<pair<int, int> > vec;
  for (int i = 0; i < n; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    vec.push_back({x, y});
  }
  sort(vec.begin(), vec.end());
  for (int i = 0; i < n; i++) {
    if (good(vec[i])) {
      dp.pop_back();
      dp.push_back(vec[i]);
    } else if (Ac(vec[i])) {
      dp.push_back(vec[i]);
    }
  }
  cout << dp.size();
}
