
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=50100;
int n,a[N],b[N],len,kk;
signed main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
b[1]=a[1];
len=1;
for(int i=2;i<=n;i++){
if(a[i]>b[len]){
b[++len]=a[i];
}
else{
int l=1,r=len,mid;
while(l<r){
mid=(l+r)>>1;
if(b[mid]>a[i]){
r=mid;
}
else{
l=mid+1;
}
}
if(b[l]>a[i]){
b[l]=a[i];
}
}
}
cout<<len;
return 0;
}