N, A = int(input()), list(map(int, input().split())) LIS = [] for a in A : if not len(LIS) or a > LIS[-1] : LIS.append(a) else : left, right = 0, len(LIS) - 1 while left < right : mid = (left + right) // 2 if a > LIS[mid] : left = mid + 1 else : right = mid LIS[left] = a print(len(LIS))