#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int n,a,ans;
vector<int> v;
int main(void){
    cin>>n;
    v.push_back(-1);
    for(int i=0;i<n;i++){
        cin>>a;
        int itr=lower_bound(v.begin(),v.end(),a)-v.begin();
        ans=max(ans,itr);
        if(itr==v.size())v.push_back(a);
        else v[itr]=a;
    }
    cout<<ans<<endl;
}

