import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
        int n=sc.nextInt();
        int[] inArr=new int[n]; 
        int[] dp =new int[n];
            for(int i =0;i<n;i++){
                inArr[i]=sc.nextInt();
                dp[i]=1;//默认,新的数组值都为1 ,因为默认都是有一步的
            }
            
            for(int i=0;i<n;i++){
                for(int j=0;j<i;j++){
                    //j永远从第一个值开始 往后比 ,走的步数赋值到对应位置的dp值
                    if(inArr[j]<inArr[i]){
                        dp[i] = Math.max(dp[i],dp[j]+1);
                    }
                }
            }
            int max = 1;
            for(int i=0;i<n;i++){
                if(dp[i]>max){
                    max=dp[i];
                }
            }
            System.out.println(max);
        }
    }
}