int i,n,l,r,m,len=1;
long data[1000],d[1001];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%ld",&data);
d=INFIN;
}
d[0]=-INFIN;
d[n]=INFIN;
l=0; r=i+1;
while(l<r)
m=(l+r)/2;
if(data>=d[m])
l=m+1;
else
r=m;
if(data<d[l])
d[l]=data;
if(l>len)
len=l;
printf("%d\\n",len);