/*
题目描述
给定 n 个区间,要求合并所有有交集的区间。
注意如果在端点处相交,也算有交集。
输出合并完成后的区间个数。
例如:[1,3] 和 [2,6] 可以合并为一个区间 [1,6]。
样例
输入样例:
5
1 2
2 4
5 6
7 8
7 9
输出样例:
3
*/
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef pair<int, int> PII;
const int N = 100005;
int n;
vector<PII> segs;
void merge(vector<PII>& s) {
vector<PII> res;
int st = -2e10, ed = -2e10;
sort(s.begin(), s.end());
for(int i = 0; i < s.size(); i++) {
if(ed < s[i].first) {
if(st != -2e10) {
res.push_back(PII(st, ed));
st = s[i].first;
ed = s[i].second;
}
}else {
ed = max(s[i].second, ed);
}
}
if(st != -2e10) {
res.push_back(PII(st, ed));
}
s = res;
return;
}
int main()
{
cin >> n;
while(n--) {
int st, ed;
cin >> st >> ed;
segs.push_back(PII(st, ed));
}
merge(segs);
// for(PII seg:segs) {
// cout << seg.first << ' ' << seg.second << endl;
// }
cout << segs.size() << endl;
return 0;
}