import bisect n = int(input()) intervals = [] for _ in range(n): L, R = map(int, input().split()) intervals.append((L, R)) tails = [] for L, R in intervals: idx = bisect.bisect_left(tails, R) j_max = idx - 1 if j_max >= 0: x = max(L, tails[j_max] + 1) else: x = L if x > R: continue if idx == len(tails): tails.append(x) else: if x < tails[idx]: tails[idx] = x print(len(tails))