segs = []
res = []
def merge(segs):
global res
start, end = None, None # 更直观的初始值
for l, r in segs:
if end is None: # 初始化第一个区间
start, end = l, r
elif end < l: # 无重叠
res.append([start, end])
start, end = l, r # 更新为当前区间
else: # 有重叠
end = max(end, r) # 更新结束值
if start is not None: # 添加最后一个区间
res.append([start, end])
def main1():
global segs, res
n = int(input())
for _ in range(n):
# input().split()将输入字符串按照空格分割成一个列表。例如,如果用户输入1 3,那么split()将返回[‘1’, ‘3’]
# map(int, …)函数将分割后的字符串列表中的每个元素转换为整数。map会对列表中的每个字符串应用int()函数,因此[‘1’, ‘3’]将变为[1, 3]
segs.append(list(map(int, input().split())))
segs.sort(key=lambda x: x[0]) # 按起始值排序
merge(segs)
print(len(res)) # 打印合并后的区间数量
main1()