n = int(input())
a = [list(map(int, input().split())) for _ in range(n)] #获取区间列表
a.sort(key=lambda x: (x[0], x[1])) #将区间先按照区间开头从大到小排序,再按照区间结尾从大到小排序
stack = [] #用来放选择的区间
for r in a: #r是排序后a中的区间
if not stack: #如果stack为空
stack.append(r) #把区间r加入进stack中
else: #stack不为空
if r[0] >= stack[-1][1]: #如果当前区间r的开头在stack最后的区间的后面
stack.append(r) #把区间r加入stack中
if r[0] >= stack[-1][0] and r[1] <= stack[-1][1]: #如果当前区间r是stack末尾区间的子集
stack[-1] = r #把stack的末尾区间替换为当前区间r
print(len(stack)) #输出选中区间的数量


京公网安备 11010502036488号