import sys
input = sys.stdin.readline
n=int(input())
a=list(map(int,input().split()))
dp=[0]*n
for i in range(n):
for j in range(i):
if a[j]>a[i]:
dp[i]=max(dp[i],dp[j])
dp[i]+=1
print(max(dp))
dp[i]엔 i까지 가장 긴 감소하는 부분 수열의 길이를 저장한다.
이를 위해서 0번부터 i-1번까지의 감소부분수열을 만족하면서 가장 큰값에다가 +1한값이 dp[i]값이 된다.