#include<stdio.h>
int n,a[1110],k,b[1110];
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	scanf("%d",&a[i]);
	for(int i=1;i<=n;i++)
	{
		int min=999999,minx,t=0;
		for(int j=1;j<=k;j++)
		if(min>b[j]&&b[j]>=a[i])
		{
			min=b[j];
			minx=j;
			t=1;
		}
		if(t==0)
		b[++k]=a[i];
		else
		b[minx]=a[i];
	}
	printf("%d",k);
	return 0;
}
/**************************************************************
	Problem: 1229
	User: admin
	Language: C
	Result: Accepted
	Time:32 ms
	Memory:1152 kb
****************************************************************/