#include<bits/stdc++.h>
using namespace std;
int n;
int dat[100001],dp[100001];
int main(){
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>dat[i];
}
//dp[1]=dat[1];
int len=0;
for(int i=1;i<=n;i++)
{
if(dat[i]>dp[len])dp[++len]=dat[i];
else
{
int l=0,r=n,mid;
while(l<r)
{
mid=(l+r)/2;
if(dp[mid]>dat[i])r=mid;
else l=mid+1;
}
dp[l]=dat[i];
}
}
cout<<len;
return 0;
}