from bisect import bisect_left n = int(input()) A = list(map(int, input().split())) ans = 0 LIS = [A[0]] for i in range(1, n): a = A[i] idx = bisect_left(LIS, a) if len(LIS) == idx: LIS.append(a) else: LIS[idx] = a ans += 1 print(ans)