n=int( input() ) #数组个数
a=list( map(int,input().split()) ) #梅花桩高度

dp=[1]*n #初始化步数

for i in range(n):
    for j in range(i):
        if a[i]>a[j]:
            dp[i]=max(dp[j]+1,dp[i]) #这个好理解 显然有手就行
print(max(dp))