n = int(input())

arr = list(map(int,input().split()))

dp = [1]*(n+1)

for i in range(n-1,-1,-1):  # 从后往前
    for j in range(i+1,n): # 如果当前数小于后面的那个,那么他也会小于大于这个数的数,dp[j]记录的就是已经小的数
        if arr[i] < arr[j]:
            dp[i] = max(dp[i],dp[j] + 1)

print(max(dp))