while True:
    try:
        n = int(input())
        s = list(map(int,input().split()))
        dp= [1] *n # 创建一个全为1的n列数组
        for i in range(n):
            for j in range(i):
                if s[i]>s[j]: # 判断前一位的数字是否大于后一位的数字,如果有大于的数字,则说明还有递增的可能性,因此求dp[j]的最大值+1;如果没有比当前数字大的数,说明从当前位出发,没有再递增的可能性,所以dp[i]=1,保持不变
                    dp[i] = max(1+dp[j],dp[i])
        print(max(dp))
    except:
        break