import bisect n = int(input()) intervals = [tuple(map(int, input().split())) for _ in range(n)] dp = [] for L, R in intervals: # Find the largest index where dp[index] < R idx = bisect.bisect_left(dp, R) k = idx - 1 if k == -1: x = L else: x = max(L, dp[k] + 1) # Determine the new length new_len = k + 2 if new_len > len(dp): dp.append(x) else: if x < dp[new_len - 1]: dp[new_len - 1] = x print(len(dp))