# Process input
n = int(input())
arr = list(map(int, input().split()))

# DP
# 阶段:起点为i,终点为j
# 状态:从i到j走过的最大梅花桩数量
dp = [1] * n
for j in range(n):
    for i in range(j):
        if arr[i] < arr[j]:
            dp[j] = max(dp[j], dp[i]+1)

# Output
print(max(dp))