n=int(input( ))
data=[0]
data.extend(list(map(int,input().split( ))))
f=[1]*(n+1)#初始化不再是零了,要注意
print(data)
print(f)
for i in range(1,n+1): #以data[i]为结尾的子序列长度
for j in range(1,i): #求以data[i]为结尾的子序列长度可以利用以data[j]为结尾的子序列,但是data[j]必须小于data[i]
if data[j]<data[i]:
f[i]=max(f[i],f[j]+1)
max_value=0
for i in range(1,n+1):
max_value=max(max_value,f[i])
print(max_value)