#include <stdio.h>
int dp(int *nums,int n){
int i,j,num[n],top=0;
memset(num,0,n*4);
num[0]=1;
for(i=1;i<n;i++){
num[i]=1;
for(j=0;j<i;j++){
if((nums[i]>nums[j])&&(num[i]<=num[j])) num[i]=num[j]+1;
}
}
for(i=0;i<n;i++){
if(top<num[i]) top=num[i];
}
return top;
}
int main(){
int i, n,nums[1000],top,tem;
while(scanf("%d",&n)!=-1){
top=0;
for(i=0;i<n;i++) scanf("%d",nums+i);
printf("%d\n",dp(nums, n));
}
return 0;
}