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);
}
}
}