#include<bits/stdc++.h>
using namespace std;
int n,x,ans,dp[100001];
vector<int>v;
int main(){
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>x;
        v.push_back(x);
        dp[i]=1;
        for(int j=i-1;j>=0;j--){
            if(v[i]>v[j])dp[i]=max(dp[i],dp[j]+1);
        }
        ans=max(ans,dp[i]);
    }
    cout<<ans;
    return 0;
}
/**************************************************************
	Problem: 1794
	User: zhuangsongyu
	Language: C++
	Result: Accepted
	Time:290 ms
	Memory:2600 kb
****************************************************************/