N = int(input())
sequence = list(map(int, input().split()))

# dp[i] : i번째에서 가장 긴 부분 수열 
dp = [0] * N

# 모든 수를 따짐
for i in range(0, N):
    min_value = 0
    for j in range(i):
        # 현재 수가 더 큰 경우는 작은 수의 경우의 수에다가 + 1을 해준다.
        if(sequence[i] > sequence[j]):
            min_value = max(min_value, dp[j])
    dp[i] = min_value + 1
print(max(dp))

 

'# 코딩 문제 관련 > 파이썬' 카테고리의 다른 글

백준 2565번(python)  (0) 2019.08.19
백준 11054번(python)  (0) 2019.08.18
백준 2156번(python)  (0) 2019.08.16
백준 10844번(python)  (0) 2019.08.16
백준 10989번(python)  (0) 2019.08.10