'''
统计每一个在终点出现的最大的起点,把这写终点和最大起点对按照终点升序排列,
从左到右遍历每一个数对,如果上次选择的点坐标大于等于当前数对起点,就复用
上一次选择的点坐标,否则当前付出一次开销,多选择坐标是当前终点的点以满足
当前区间的需求,按照此贪心策略选择出的总点数最少
'''
n = int(input())
m = {}
for _ in range(n):
a, b = map(int, input().split())
if b not in m:
m[b] = a
m[b] = max(m[b], a)
r = [(end, start) for end, start in m.items()]
r.sort()
max_end = -0x7fffffff
cnt = 0
for end, start in r:
if start > max_end:
max_end = end
cnt += 1
print(cnt)