https://www.acmicpc.net/problem/11053
n=int(input())
mlist=list(map(int, input().split()))
dp=[0 for _ in range(n)]
for i in range(n):
for j in range(n):
if mlist[i]>mlist[j] and dp[i]<dp[j]:
dp[i]=dp[j]
dp[i]+=1
print(max(dp))