n = int(input()) al = [] for i in range(n): a,b = map(int,input().split()) al.append((a,b)) #次の順列を出力.もうなかったら-1を出します。 def Next_P(now): last_higher = -1 nagasa = len(now) for i in range(nagasa-1): if now[i] < now[i+1]: last_higher = i if last_higher == -1: return -1 else: last_higher_higher = -1 for j in range(last_higher+1,nagasa): if now[last_higher] < now[j]: last_higher_higher = j now[last_higher],now[last_higher_higher] = now[last_higher_higher],now[last_higher] hanten = now[last_higher+1:] hanten = hanten[::-1] now = now[:last_higher+1] + hanten return now now = list(range(n)) ans = 0 while now != -1: num = 0 p = True for i in range(n): num = max(num,al[now[i]][0]) if num > al[now[i]][1]: p = False break if p: ans += 1 now = Next_P(now) print(ans)