#include<iostream>
using namespace std;
const int N=1e5+10;
int a[N];
int f[N];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
int len=0;
for(int i=0;i<n;i++)
{
int l=0,r=len,mid;
while(l<r)
{
mid=l+(r-l+1>>1);
if(f[mid]<a[i]) l=mid;
else r=mid-1;
}
f[r+1]=a[i];
if(r+1>len) len++;
}
cout<<len<<endl;
return 0;
}