#include<stdio.h>
#include<stdlib.h>
#define max(a,b) (a>b)?a:b
int main(void){
	int n,m=0,i,j;
	int *a,*dp;
	scanf("%d",&n);
	a=calloc(n,sizeof(int));
	dp=calloc(n,sizeof(int));
	for(i=0;i<n;i++) scanf("%d",&a[i]);
	for(i=0;i<n;i++){ dp[i]=1;
		for(j=1;j<i;j++){
			if(a[j]<a[i]) dp[i]=max(dp[i],dp[j]+1);
		}
		m=max(m,dp[i]);
	}
	printf("%d\n",m);
	free(a);free(dp);
	return 0;
}