#include<stdio.h>
int n,a,s[30001],l,m,num,r;
intmain()
{
{
num =0 ;
while(m --)
{
scanf ("%d" ,&a );
if(num ==0 )
{
s [1 ] = a ; num ++;
} //开一个系统,初始化
else
{
if(a >s [num ]) {
num ++;s [num ] = a ;
} //重开一个系统
else
{
l =1 ,r = num ;
while(l <=r ) //二分搜索a在b[i]中的位置
{
int m = (l +r )/2 ;
if(s [m ]==a )break;
if(s [m ]<a ) l = m +1 ;
if(s [m ]>a ) r = m -1 ;
}
if(l >r )
s [l ] = a ;
}
}
}
printf ("%d\n" ,num );
}
return0 ;
}