n = int(input())
h = list(map(int, input().split()))
dp = [1] * n
for i in range(n):  # 动态规划求解,每次计算前i个字符串中,最长可跳过的梅花桩
    for j in range(i):
        if h[i] > h[j]:
            dp[i] = max(dp[i], dp[j] + 1)
print(max(dp))