import bisect n = int(input()) intervals = [tuple(map(int, input().split())) for _ in range(n)] dp = [] for L, R in intervals: if not dp: dp.append(L) else: pos = bisect.bisect_left(dp, R) k_max = pos - 1 if k_max >= 0: x = max(L, dp[k_max] + 1) else: x = L new_length = k_max + 2 if new_length > len(dp): dp.append(x) else: if x < dp[new_length - 1]: dp[new_length - 1] = x print(len(dp))