n = int(input())
baowu = []
for i in range(n):
baowu.append(list(map(int,input().split())))
def maxEnvelopes1(baowu):
'''
动态+二分查找
:param envelopes:
:return:
'''
baowu.sort(key=lambda x: (x[0], -x[1]))
nums = []
for i in baowu:
nums.append(i[1])
stack = [0] * len(nums)
maxl = 0
for x in nums:
low, high = 0, maxl
while low < high:
mid = low +(high - low) // 2
# 只要改这一行代码即可
if stack[mid] <= x:
low = mid + 1
else:
high = mid
stack[low] = x
maxl = max(low + 1, maxl)
return maxl
print(maxEnvelopes1(baowu))
leetcode 354 只要改一行代码